当前位置:首页 > JavaScript

js实现弹出框

2026-02-28 18:35:33JavaScript

使用原生JavaScript实现弹出框

通过window.alert()方法可以直接调用浏览器原生弹窗:

alert('这是一个简单的弹出框');

创建自定义样式弹出框

HTML结构:

<div id="customModal" class="modal">
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>自定义弹出框内容</p>
  </div>
</div>

CSS样式:

.modal {
  display: none;
  position: fixed;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.4);
}

.modal-content {
  background-color: #fefefe;
  margin: 15% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}

JavaScript控制逻辑:

const modal = document.getElementById("customModal");
const span = document.getElementsByClassName("close")[0];

function openModal() {
  modal.style.display = "block";
}

span.onclick = function() {
  modal.style.display = "none";
}

window.onclick = function(event) {
  if (event.target == modal) {
    modal.style.display = "none";
  }
}

使用第三方库实现

引入SweetAlert2库:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>

基本用法:

Swal.fire({
  title: '标题',
  text: '内容文本',
  icon: 'success',
  confirmButtonText: '确定'
});

高级用法示例:

Swal.fire({
  title: '自定义弹出框',
  html: '<p>支持HTML内容</p>',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: '确认',
  cancelButtonText: '取消'
}).then((result) => {
  if (result.isConfirmed) {
    console.log('用户点击确认');
  }
});

实现带表单的弹出框

HTML结构:

<div id="formModal" class="modal">
  <div class="modal-content">
    <form id="modalForm">
      <input type="text" placeholder="用户名">
      <input type="password" placeholder="密码">
      <button type="submit">提交</button>
    </form>
  </div>
</div>

JavaScript处理:

document.getElementById('modalForm').addEventListener('submit', function(e) {
  e.preventDefault();
  // 获取表单数据逻辑
  console.log('表单已提交');
  document.getElementById('formModal').style.display = 'none';
});

动画效果增强

为弹出框添加CSS动画:

.modal-content {
  animation: modalopen 0.5s;
}

@keyframes modalopen {
  from {opacity: 0; transform: translateY(-50px)}
  to {opacity: 1; transform: translateY(0)}
}

响应式设计考虑

针对不同屏幕尺寸调整样式:

@media screen and (min-width: 600px) {
  .modal-content {
    width: 50%;
  }
}

js实现弹出框

标签: 弹出js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScri…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…