当前位置:首页 > JavaScript

js 实现popup

2026-02-02 04:23:56JavaScript

实现基本的 JavaScript Popup

使用 window.open() 方法创建最简单的弹窗:

const popup = window.open('', 'PopupWindow', 'width=300,height=200');
popup.document.write('<h1>Hello Popup!</h1>');

自定义弹窗样式

通过 DOM 操作创建带样式的弹窗:

const popup = document.createElement('div');
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.style.padding = '20px';
popup.style.backgroundColor = 'white';
popup.style.boxShadow = '0 0 10px rgba(0,0,0,0.3)';
popup.innerHTML = '<button id="closeBtn">X</button><p>Custom Popup Content</p>';
document.body.appendChild(popup);

document.getElementById('closeBtn').addEventListener('click', () => {
  document.body.removeChild(popup);
});

带遮罩层的弹窗

实现背景遮罩效果:

js 实现popup

const overlay = document.createElement('div');
overlay.style.position = 'fixed';
overlay.style.top = '0';
overlay.style.left = '0';
overlay.style.width = '100%';
overlay.style.height = '100%';
overlay.style.backgroundColor = 'rgba(0,0,0,0.5)';
overlay.style.zIndex = '1000';

const popup = document.createElement('div');
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.style.zIndex = '1001';
popup.innerHTML = '<div style="background:white;padding:20px;">Popup Content</div>';

document.body.appendChild(overlay);
document.body.appendChild(popup);

overlay.addEventListener('click', () => {
  document.body.removeChild(overlay);
  document.body.removeChild(popup);
});

使用 CSS 动画的弹窗

添加弹出动画效果:

.popup {
  animation: fadeIn 0.3s ease-out;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translate(-50%, -40%); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}
const popup = document.createElement('div');
popup.className = 'popup';
popup.style.position = 'fixed';
popup.style.top = '50%';
popup.style.left = '50%';
popup.style.transform = 'translate(-50%, -50%)';
popup.innerHTML = 'Animated Popup';
document.body.appendChild(popup);

响应式弹窗

根据屏幕尺寸调整弹窗大小:

js 实现popup

function createResponsivePopup() {
  const width = window.innerWidth > 768 ? '50%' : '90%';

  const popup = document.createElement('div');
  popup.style.width = width;
  popup.style.maxWidth = '600px';
  popup.style.margin = '0 auto';
  popup.innerHTML = 'Responsive Popup Content';

  document.body.appendChild(popup);
}

使用第三方库

使用 jQuery UI 实现弹窗:

$('<div>').dialog({
  title: 'jQuery UI Popup',
  width: 350,
  buttons: {
    OK: function() { $(this).dialog('close'); }
  }
});

使用 SweetAlert2 创建美观弹窗:

Swal.fire({
  title: 'SweetAlert2 Popup',
  text: 'This is a beautiful popup',
  icon: 'success',
  confirmButtonText: 'OK'
});

标签: jspopup
分享给朋友:

相关文章

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现图片滚动

js实现图片滚动

图片滚动的实现方法 使用CSS动画实现 通过CSS的animation和@keyframes可以实现简单的图片滚动效果。这种方法适合静态图片的无缝循环滚动。 <style> .scr…

js sort 实现

js sort 实现

数组排序基础方法 JavaScript 数组的 sort() 方法默认按照字符串 Unicode 码点顺序排序。直接调用时会将元素转为字符串再比较: const arr = [10, 2, 5, 1…

用js实现vue

用js实现vue

用 JavaScript 实现 Vue 核心功能 Vue.js 是一个渐进式框架,其核心功能包括响应式数据绑定、虚拟 DOM 和组件系统。以下是一个简化版的实现,展示如何用原生 JavaScript…