具体实现思路:
当页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮,使用setInterval()函数触发moves()函数开始动画。
先来看用javascript的实现方法,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>JS悬浮移动窗口(悬浮广告)-www.jb200.com</title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <script type="text/javascript"> window.onload=function(){ //写入 var oneInner = document.createElement("div"); oneInner.setAttribute("style","background:#663398;position:absolute;width:100px;height:100px;border:solid 3px #2F74A7; cursor:pointer;"); var oneButton = document.createElement("input"); oneButton.setAttribute("type","button"); oneButton.setAttribute("value","x"); if (oneButton.style.cssFloat) { oneButton.style.cssFloat="right" } else {oneButton.style.styleFloat="right"} oneInner.appendChild(oneButton); document.body.appendChild(oneInner); //定时器 var a1a = setInterval(moves,100); //函数 var x = 10; var y = 10; function moves(){ var tops = oneInner.offsetTop var lefts = oneInner.offsetLeft if (lefts>=document.documentElement.clientWidth-oneInner.offsetWidth||lefts<=0) { x=-x } if (tops>=document.documentElement.clientHeight-oneInner.offsetHeight||tops<=0) { y=-y } tops+=y; lefts+=x; oneInner.style.top=tops+"px" oneInner.style.left=lefts+"px" } //悬停停止 oneInner.onmouseover=function(){ clearInterval(a1a); } //放手继续运动 oneInner.onmouseout=function(){ a1a =setInterval(moves,100); } //删除 oneButton.onclick=function(){ document.body.removeChild(oneInner); } } </script> </head> <body> </body> </html>
下面这个是jquery实现的悬浮广告代码,如下:
<!DOCTYPE html> <html> <head> <title>JS悬浮移动窗口(悬浮广告)-www.jb200.com</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="/js/jquery-1.7.min.js"></script> <script> $(function(){ //写入div $("<div/>",{id:"moveWindow"}).css({width:"200px",height:"200px",border:"solid 3px #2F74A7",background:"#663398",position:"absolute",cursor:"pointer"}).appendTo("body"); //写入关闭按钮 $("<div/>",{id:"removeMW"}).css({width:"20px",height:"20px",background:"red",float:"right"}).appendTo("#moveWindow"); //定时器 var move = setInterval(moves,100); var x= 10; var y= 10; function moves (){ var mw = $("#moveWindow").offset(); var lefts =mw.left; var tops = mw.top; if (lefts>=$(window).width()-$("#moveWindow").width()||lefts<=0) { x=-x } if (tops>=$(window).height()-$("#moveWindow").height()||tops<=0) { y=-y } lefts+=x; tops+=y; $("#moveWindow").offset({top:tops,left:lefts}); } //悬停停止运动 $("#moveWindow").mouseover(function(){ clearInterval(move); }); //移开鼠标后继续运动 $("#moveWindow").mouseout(function(){ move = setInterval(moves,100); }); //点击按钮关闭 $("#removeMW").click(function(){ $("#moveWindow").remove(); }); }) </script> </head> <body> </body> </html>
思路分享:
1,页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮。
2,使用setInterval()函数触发moves()函数开始动画。
3,moves函数:首先获取当前窗口位置,之后随时间使窗口位移,每当位移到游览器边缘时反向运动。
4,添加其他事件:鼠标悬停停止运动,鼠标离开继续运动,点击按钮关闭窗口。
以上代码仅限适当使用,为不影响用户体验,建议慎用,你懂。