这些天一直在做弹出层的设计,原理在明白之后很好下手!主要技术要点就是:
1.弹出层的绝对定位,这主要有跨浏览器鼠标位置的获取技术,CSS:z-index定位。
2.动态控制弹出Div的各种属性。
3.弹出窗口位置的计算,主要是在有蒙版层的里面,居中的问题。
4.各种弹出效果和动画。
先给出普通弹出层的代码:
1 <script language="javascript" type="text/javascript">
2 $(function(){
3 $("#ele1").click(function(ev){
4 var evs= ev || window.event;
5 var XYposition=mousePosition(evs);
6 var X=XYposition.x;
7 var Y=XYposition.y;
8 $('#blk1').css("opacity","0").css("left",''+X+'px').css("top",''+Y+'px');
9 $('#blk1').animate({width:"200px",height:"200px",opacity:"1"},3000);
10 })
11 $("#close1").click(function(){
12 $('#blk1').stop().animate({width:"0px",height:"0px",opacity:"0",left:"0px",top:"0px"},300);
13 })
14
15 });
16
17 //鼠标位置
18 function mousePosition(ev){
19 if(ev.pageX || ev.pageY){
20 return {x:ev.pageX, y:ev.pageY};
21 }
22 return {
23 x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
24 y:ev.clientY + document.body.scrollTop - document.body.clientTop
25 };
26 }
27
28 </script>
带蒙版:

<script language="javascript" type="text/javascript">
$(function(){
$("#ele1").click(function(ev){
//蒙版层
var CoverAll=getViewportInfo();
var W=CoverAll.w;
var H=CoverAll.h;
$('#all').css("opacity","0.3").css("width",''+W+'px').css("height",''+H+'px');
//弹出层
var X=(W-300)/2;
var Y=(H-200)/2;
$('#blk1').css("opacity","0").css("left",''+W/2+'').css("top",''+H/2+'');
$('#blk1').animate({width:"300px",height:"200px",left:''+X+'',top:''+Y+'',opacity:"1"},3000,function(){$('#hideDiv').show();});
})
//关闭按钮
$('#close1').click(function(){
$('#blk1').stop().animate({width:"0px",height:"0px",opacity:"0"},300);
$('#all').stop().animate({width:"0px",height:"0px",opacity:"0",left:"0px",top:"0px"},100);
})
});
//蒙版的尺寸
function getViewportInfo()
{
var w = (window.innerWidth) ? window.innerWidth : (document.documentElement && document.documentElement.clientWidth) ? document.documentElement.clientWidth : document.body.offsetWidth;
var h = (window.innerHeight) ? window.innerHeight : (document.documentElement && document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.offsetHeight;
return {w:w,h:h};
};
</script>
具体就不解释了,注释很充分,大家可以自己运行一下!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具