当前位置:首页 > JavaScript

js实现弹窗效果

2026-04-04 10:07:49JavaScript

使用原生JavaScript实现弹窗效果

通过document.createElement动态生成弹窗元素,结合CSS控制样式和动画

const modal = document.createElement('div');
modal.id = 'custom-modal';
modal.innerHTML = `
  <div class="modal-content">
    <span class="close-btn">&times;</span>
    <p>弹窗内容</p>
  </div>
`;
document.body.appendChild(modal);

const closeBtn = modal.querySelector('.close-btn');
closeBtn.onclick = () => modal.style.display = 'none';

CSS样式配置

为弹窗添加基础样式和动画效果

js实现弹窗效果

#custom-modal {
  display: none;
  position: fixed;
  z-index: 999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.7);
}

.modal-content {
  background-color: #fff;
  margin: 15% auto;
  padding: 20px;
  width: 80%;
  max-width: 600px;
  animation: fadeIn 0.3s;
}

@keyframes fadeIn {
  from {opacity: 0;}
  to {opacity: 1;}
}

显示控制函数

封装显示/隐藏弹窗的函数便于调用

js实现弹窗效果

function showModal() {
  document.getElementById('custom-modal').style.display = 'block';
}

function hideModal() {
  document.getElementById('custom-modal').style.display = 'none';
}

// 点击弹窗外部区域关闭
window.onclick = function(event) {
  if (event.target == modal) {
    hideModal();
  }
}

使用HTML5 dialog元素

现代浏览器支持的更简洁的实现方式

<dialog id="dialog">
  <p>弹窗内容</p>
  <button onclick="document.getElementById('dialog').close()">关闭</button>
</dialog>

<script>
// 显示弹窗
document.getElementById('dialog').showModal();

// 普通显示(非模态)
document.getElementById('dialog').show();
</script>

第三方库实现

使用SweetAlert2库快速创建美观弹窗

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

<script>
Swal.fire({
  title: '自定义弹窗',
  text: '这是使用SweetAlert2创建的弹窗',
  icon: 'success',
  confirmButtonText: '确定'
});
</script>

每种方法适用于不同场景:原生实现最灵活但代码量较大,dialog元素简洁但兼容性需考虑,第三方库能快速实现复杂效果但增加项目依赖。根据具体需求选择最合适的实现方案。

标签: 效果js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…