黑帽联盟

标题: JS实现悬浮移动窗口(悬浮广告)的特效 [打印本页]

作者: heimao    时间: 2017-2-26 19:50
标题: JS实现悬浮移动窗口(悬浮广告)的特效
页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮,使用setInterval()函数触发moves()函数开始动画

js方法:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3.     <head>
  4.         <title> New Document </title>
  5.         <meta name="Generator" content="EditPlus">
  6.         <meta name="Author" content="">
  7.         <meta name="Keywords" content="">
  8.         <meta name="Description" content="">
  9.         <script type="text/javascript">
  10.             window.onload=function(){
  11.                 //写入
  12.                 var oneInner = document.createElement("div");
  13.                 oneInner.setAttribute("style","background:#663398;position:absolute;width:100px;height:100px;border:solid 3px #2F74A7;cursor:pointer;");
  14.                 var oneButton = document.createElement("input");
  15.                 oneButton.setAttribute("type","button");
  16.                 oneButton.setAttribute("value","x");
  17.                 if (oneButton.style.cssFloat)
  18.                 {
  19.                     oneButton.style.cssFloat="right"
  20.                 }
  21.                 else
  22.                 {oneButton.style.styleFloat="right"}
  23.                 oneInner.appendChild(oneButton);
  24.                 document.body.appendChild(oneInner);

  25.                 //定时器
  26.                 var a1a = setInterval(moves,100);
  27.                 //函数
  28.                 var x = 10;
  29.                 var y = 10;
  30.                 function moves(){
  31.                     var tops = oneInner.offsetTop
  32.                     var lefts = oneInner.offsetLeft
  33.                     if (lefts>=document.documentElement.clientWidth-oneInner.offsetWidth||lefts<=0)
  34.                     {
  35.                         x=-x
  36.                     }
  37.                     if (tops>=document.documentElement.clientHeight-oneInner.offsetHeight||tops<=0)
  38.                     {
  39.                         y=-y
  40.                     }

  41.                     tops+=y;
  42.                     lefts+=x;
  43.                     oneInner.style.top=tops+"px"
  44.                     oneInner.style.left=lefts+"px"
  45.                 }
  46.                 //悬停停止
  47.                 oneInner.onmouseover=function(){
  48.                     clearInterval(a1a);
  49.                 }
  50.                 //放手继续运动
  51.                 oneInner.onmouseout=function(){
  52.                     a1a =setInterval(moves,100);
  53.                 }
  54.                 //删除
  55.                 oneButton.onclick=function(){
  56.                     document.body.removeChild(oneInner);
  57.                 }
  58.             }
  59.         </script>
  60.     </head>
  61.     <body>

  62.     </body>
  63. </html>
复制代码
jquery方法:
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <title></title>
  5.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.         <script type="text/javascript" src="https://bbs.cnblackhat.com/js/jquery-1.7.min.js"></script>
  7.         <script>
  8.             $(function(){
  9.                 //写入div
  10.                 $("<div/>",{id:"moveWindow"}).css({width:"200px",height:"200px",border:"solid 3px #2F74A7",background:"#663398",position:"absolute",cursor:"pointer"}).appendTo("body");
  11.                 //写入关闭按钮
  12.                 $("<div/>",{id:"removeMW"}).css({width:"20px",height:"20px",background:"red",float:"right"}).appendTo("#moveWindow");
  13.                 //定时器
  14.                 var move = setInterval(moves,100);
  15.                 var x= 10;
  16.                 var y= 10;

  17.                 function moves (){
  18.                     var mw = $("#moveWindow").offset();
  19.                     var lefts =mw.left;
  20.                     var tops = mw.top;
  21.                     if (lefts>=$(window).width()-$("#moveWindow").width()||lefts<=0)
  22.                     {
  23.                         x=-x
  24.                     }
  25.                     if (tops>=$(window).height()-$("#moveWindow").height()||tops<=0)
  26.                     {
  27.                         y=-y
  28.                     }
  29.                     lefts+=x;
  30.                     tops+=y;

  31.                     $("#moveWindow").offset({top:tops,left:lefts});

  32.                 }
  33.                 //悬停停止运动
  34.                 $("#moveWindow").mouseover(function(){
  35.                     clearInterval(move);
  36.                 });
  37.                 //移开鼠标后继续运动
  38.                 $("#moveWindow").mouseout(function(){
  39.                     move = setInterval(moves,100);
  40.                 });
  41.                 //点击按钮关闭
  42.                 $("#removeMW").click(function(){
  43.                     $("#moveWindow").remove();
  44.                 });
  45.             })
  46.         </script>
  47.     </head>
  48.     <body>
  49.     </body>
  50. </html>
复制代码
效果展示:
js悬窗





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5