打开弹窗 &…">
当前位置:首页 > JavaScript

js实现页面弹窗

2026-01-30 22:13:53JavaScript

使用原生JavaScript实现弹窗

创建一个基础的HTML结构,包含触发弹窗的按钮和弹窗内容

<button id="openModal">打开弹窗</button>
<div id="myModal" 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("myModal");
const btn = document.getElementById("openModal");
const span = document.getElementsByClassName("close")[0];

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

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

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

使用第三方库实现弹窗(以SweetAlert2为例)

安装SweetAlert2库

npm install sweetalert2

在项目中引入并使用

import Swal from 'sweetalert2'

Swal.fire({
  title: '弹窗标题',
  text: '这里是弹窗内容',
  icon: 'success',
  confirmButtonText: '确定'
})

实现带表单的弹窗

HTML结构

<button id="showForm">显示表单弹窗</button>
<div id="formModal" class="modal">
  <div class="modal-content">
    <span class="close">&times;</span>
    <form id="myForm">
      <input type="text" placeholder="用户名">
      <input type="password" placeholder="密码">
      <button type="submit">提交</button>
    </form>
  </div>
</div>

JavaScript处理表单提交

const formModal = document.getElementById("formModal");
const formBtn = document.getElementById("showForm");
const formClose = formModal.getElementsByClassName("close")[0];
const myForm = document.getElementById("myForm");

formBtn.onclick = function() {
  formModal.style.display = "block";
}

formClose.onclick = function() {
  formModal.style.display = "none";
}

myForm.onsubmit = function(e) {
  e.preventDefault();
  // 处理表单数据
  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)}
}

实现全屏弹窗

修改CSS样式

.modal-content {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
}

js实现页面弹窗

标签: 页面js
分享给朋友:

相关文章

vue页面实现日历

vue页面实现日历

Vue 页面实现日历的方法 使用第三方组件库 推荐使用成熟的日历组件库,如 v-calendar 或 fullcalendar-vue,快速实现功能丰富的日历。 安装 v-calendar:…

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现分页

js实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

css如何制作页面模糊

css如何制作页面模糊

使用 backdrop-filter 属性 通过 backdrop-filter 属性可以直接为元素背后的区域添加模糊效果。该属性需要浏览器支持(如 Chrome、Edge、Safari)。示例代码:…

vue实现预约页面

vue实现预约页面

实现预约页面的基本结构 使用Vue CLI或Vite创建一个新项目,安装必要依赖如vue-router和axios。项目结构建议包含components文件夹存放可复用组件,views文件夹存放页面级…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…