这些天一直在做弹出层的设计,原理在明白之后很好下手!主要技术要点就是:

    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>

带蒙版:

JavaScript
<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>

具体就不解释了,注释很充分,大家可以自己运行一下!

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-04
  • 2021-07-25
  • 2022-12-23
  • 2021-09-27
  • 2022-12-23
猜你喜欢
  • 2021-10-03
  • 2021-09-09
  • 2022-02-18
  • 2022-12-23
  • 2021-09-03
  • 2022-02-01
相关资源
相似解决方案