开发者的天空

 

 

搜索
开发者的天空 论坛 web前端技术 动画效果的提示窗口显示和关闭
查看: 1760|回复: 6
go

[JQuery] 动画效果的提示窗口显示和关闭    

Rank: 75Rank: 75Rank: 75

发表于 2010-7-16 16:37 |显示全部帖子
在很多网站中,都可以看到动画效果的提示窗口。正好现在在学习JQuery,于是用JQuery做了一个这样的动画效果。
下面的例子中,我们会在窗口的右下角显示一个提示窗口。当打开主窗口的时候,该提示窗口会从页面右下角慢慢升起。当关闭该提示窗口的时候,窗口会从右到左慢慢消失。
具体的实现是用Div来实现的。废话不多说了,代码为王哈!
主页面代码:
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  4. <title>mymenu</title>
  5. <link type="text/css" rel="stylesheet" href="menu.css" />
  6. <script type="text/javascript" src="jquery-1.4.min.js"></script>
  7. <script type="text/javascript" src="menu.js"></script>
  8. </head>
  9. <body style="overflow:hidden">
  10.         <div id="right" class="window">
  11.                 <div class="title">
  12.                         <img src="images/close.gif" alt="关闭" />
  13.                         温馨提示!
  14.                 </div>
  15.                 <div class="context">
  16.                         欢迎光临<a href="http://www.developersky.net">开发者的天空</a>!
  17.                 </div>
  18.         </div>
  19. &nbsp;
  20. </body>
  21. </html>
复制代码
JavaScript代码
  1. jQuery(document).ready(function(){                                  
  2.         var rightwin=jQuery("#right");
  3.         var windowobj=jQuery(window);
  4.         var cwinWidth=rightwin.width();
  5.         var cwinHeight=rightwin.height();
  6.         var browserWidth=windowobj.width();
  7.         var browserHeight=windowobj.height();
  8.         var scrollLeft=windowobj.scrollLeft();
  9.         var scrollTop=windowobj.scrollTop();
  10.         rightwin.mywin({left:"right",top:"bottom"},
  11.                 function(){
  12.                                 rightwin.hide(1000);                                                                                                  
  13.                 },{left:browserWidth-cwinWidth-5,top:browserHeight}
  14.         ).fadeOut(30000).dequeue();
  15. });


  16. /* name:mywin插件
  17. * 参数position:窗口显示的最终位置{left:XX,top:XX}
  18. * 参数hidefunc:关闭时调用的函数
  19. * 参数initPos: 窗口初位置{left:XX,top:XX}
  20. */
  21. jQuery.fn.mywin=function(position,hidefunc,initPos){
  22.         if(position && position instanceof Object){
  23.                 var positionleft=position.left;
  24.                 var positiontop=position.top;
  25.                
  26.                 var left;
  27.                 var top;
  28.                 var windowobj=$(window);
  29.                 var currentwin=this;
  30.                 var cwinWidth=this.outerWidth(true);
  31.                 var cwinHeight=this.outerHeight(true);       
  32.                
  33.                 var browserWidth;                        //浏览器宽度
  34.                 var browserHeight;                       //浏览器高度
  35.                 var scrollLeft;                          //
  36.                 var scrollTop;                           //
  37.                                        
  38.                 //计算浏览器可视区域位置
  39.                 function getWinDin(){
  40.                         browserWidth=windowobj.width();
  41.                         browserHeight=windowobj.height();
  42.                         scrollLeft=windowobj.scrollLeft();
  43.                         scrollTop=windowobj.scrollTop();
  44.                 }
  45.                 //计算浏览器的左边距
  46.                 function callLeft(positionleft,browserWidth,scrollLeft,cwinWidth){
  47.                         if(positionleft && typeof positionleft=="string"){
  48.                                 if(positionleft=="center"){
  49.                                         left=(browserWidth-cwinWidth)/2;
  50.                                 }
  51.                                 else if(positionleft=="left"){
  52.                                         left=0;
  53.                                 }
  54.                                 else if(positionleft=="right"){
  55.                                         left=browserWidth-cwinWidth;
  56.                                 }
  57.                         }
  58.                         else if(positionleft && typeof positionleft=="number"){
  59.                                 top=positionleft;
  60.                         }else{
  61.                                 left=(browserWidth-cwinWidth)/2;
  62.                         }
  63.                 }
  64.                
  65.                 //计算浏览器的上边距
  66.                 function callTop(positiontop,browserHeight,scrollTop,cwinHeight){
  67.                         if(positiontop && typeof positiontop=="string"){
  68.                                 if(positiontop=="center"){
  69.                                         top=(browserHeight-cwinHeight)/2;
  70.                                 }
  71.                                 else if(positiontop=="top"){
  72.                                         top=0
  73.                                 }
  74.                                 else if(positiontop=="bottom"){
  75.                                         top=browserHeight-cwinHeight;
  76.                                 }
  77.                         }
  78.                         else if(positiontop && typeof positiontop=="number"){
  79.                                 top=positiontop;
  80.                         }else{
  81.                                 top=(browserHeight-cwinHeight)/2;
  82.                         }
  83.                 }
  84.                 //移动窗口的位置
  85.                 function movewin(){
  86.                         callLeft(currentwin.data("positionleft"),browserWidth,scrollLeft,cwinWidth);
  87.                         callTop(currentwin.data("positiontop"),browserHeight,scrollTop,cwinHeight);       
  88.                         currentwin.animate({
  89.                                                                    left:left-5,
  90.                                                                 top: top
  91.                                                            },2000);
  92.                 }
  93.                
  94.                 //拖动窗口滚动条后重新调整窗口的相对位置
  95.                 var scrolltimeout;
  96.                 $(window).scroll(function(){
  97.                         if(!currentwin.is(":visible")){
  98.                                 return;
  99.                         }
  100.                         clearTimeout(scrolltimeout);
  101.                         scrolltimeout=setTimeout(function(){
  102.                                 getWinDin();       
  103.                                 movewin();       
  104.                         },2000);
  105.                 });
  106.                 //浏览器窗口太小变化时重新调整窗口的相对位置
  107.                 $(window).resize(function(){
  108.                         if(!currentwin.is(":visible")){
  109.                                 return;
  110.                         }
  111.                         getWinDin();
  112.                         movewin();
  113.                 });
  114.                 //点击关闭图标关闭窗口时间
  115.                 currentwin.children(".title").children("img").click(
  116.                         function(){
  117.                                 if(!hidefunc){
  118.                                         currentwin.hide(1000);
  119.                                 }else{
  120.                                         hidefunc();
  121.                                 }
  122.                 });
  123.                 //初始化窗口的位置
  124.                 if(initPos && initPos instanceof Object){
  125.                         var initleft=initPos.left;
  126.                         var inittop=initPos.top;
  127.                         if(initleft && typeof initleft=="number"){
  128.                                 currentwin.css("left",initleft);
  129.                         }else{
  130.                                 currentwin.css("left",0);       
  131.                         }
  132.                         if(inittop && typeof inittop=="number"){
  133.                                 currentwin.css("top",inittop);
  134.                         }else{
  135.                                 currentwin.css("top",0);       
  136.                         }
  137.                         currentwin.show();
  138.                 }
  139.                
  140.                 currentwin.data("positionleft",positionleft);
  141.                 currentwin.data("positiontop",positiontop);
  142.                 getWinDin();
  143.                 movewin();
  144.                 return currentwin;       
  145.         }
  146. }
复制代码
CSS代码
  1. .window{
  2. background-color:#D0DEF0;
  3. width:251px;
  4. pending:2px;
  5. margin:2px;
  6. position:absolute;
  7. display:none;
  8. }

  9. .title{
  10. font-size:10pt;
  11. height:10px;
  12. width:250px;
  13. pending:2px;
  14. }

  15. .title img{
  16. float:right;
  17. cursor:pointer;
  18. }

  19. .context{
  20. background-color:white;
  21. height:200px;
  22. width:250px;
  23. border:2px solid #D0DEF0;
  24. overflow:auto;
  25. }
复制代码
下面是详细的代码例子,大家可以下载然后看看实际的效果。
游客,如果你要查看本帖隐藏内容请回复

Rank: 1

发表于 2010-9-10 11:20 |显示全部帖子
感觉代码有点多,有没有更少代码的呢?我先下载试试。。。。我先下载试试。。。。我先下载试试。。。。我先下载试试。。。。我先下载试试。。。。我先下载试试。。。。

Rank: 1

发表于 2010-12-27 17:28 |显示全部帖子
我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。我先下载试试。。。

Rank: 3Rank: 3Rank: 3

发表于 2011-2-18 11:54 |显示全部帖子
现在赈灾学习div,真好试用一下,看看,看看看看看看看看看看看看看看看!
头像被屏蔽

禁止访问

发表于 2011-2-28 08:00 |显示全部帖子
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 1

发表于 2011-3-9 10:46 |显示全部帖子
see see look look locationwefewfewwwefewfewfewwfewfewfewfwewfeweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Rank: 1

发表于 2011-3-9 10:47 |显示全部帖子
回复 1# afrag
你需要登录后才可以回帖 登录 | 注册

Archiver|开发者的天空

GMT+8, 2012-2-8 19:58

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.