/******************************************************************************** Function: ptLimitFloat.js Description: 限定范围的随机飘浮 Author: guye Finish DateTime: 2021-6-8 10:58:30 *********************************************************************************/ /* 限定范围的随机漂浮的例子
***** content ******
var ad=new AdMoveLimit("Div2","#container"); ad.Run(); */ var AdMoveLimitConfig=new Object(); AdMoveLimitConfig.IsInitialized=false; AdMoveLimitConfig.MoveWidth=0; AdMoveLimitConfig.MoveHeight=0; AdMoveLimitConfig.ScrollX=0; AdMoveLimitConfig.ScrollY=0; AdMoveLimitConfig.Resize=function(obj){ var $obj=$(obj); AdMoveLimitConfig.MoveWidth=$obj.width(); AdMoveLimitConfig.MoveHeight=$obj.height(); } function AdMoveLimit(id,container){ if(!AdMoveLimitConfig.IsInitialized){ AdMoveLimitConfig.Resize(container); AdMoveLimitConfig.IsInitialized=true; } var obj=document.getElementById(id); obj.style.position="absolute"; var W=AdMoveLimitConfig.MoveWidth-obj.offsetWidth; var H=AdMoveLimitConfig.MoveHeight-obj.offsetHeight; var x = W*Math.random(),y = H*Math.random(); var rad=(Math.random()+1)*Math.PI/6; var kx=Math.sin(rad),ky=Math.cos(rad); var dirx = (Math.random()<0.5?1:-1), diry = (Math.random()<0.5?1:-1); var step = 1; var interval; this.SetLocation=function(vx,vy){x=vx;y=vy;} this.SetDirection=function(vx,vy){dirx=vx;diry=vy;} obj.CustomMethod=function(){ obj.style.left = (x + AdMoveLimitConfig.ScrollX) + "px"; obj.style.top = (y + AdMoveLimitConfig.ScrollY) + "px"; rad=(Math.random()+1)*Math.PI/6; W=AdMoveLimitConfig.MoveWidth-obj.offsetWidth; H=AdMoveLimitConfig.MoveHeight-obj.offsetHeight; x = x + step*kx*dirx; if (x < 0){dirx = 1;x = 0;kx=Math.sin(rad);ky=Math.cos(rad);} if (x > W){dirx = -1;x = W;kx=Math.sin(rad);ky=Math.cos(rad);} y = y + step*ky*diry; if (y < 0){diry = 1;y = 0;kx=Math.sin(rad);ky=Math.cos(rad);} if (y > H){diry = -1;y = H;kx=Math.sin(rad);ky=Math.cos(rad);} } this.Run=function(){ var delay = 10; interval=setInterval(obj.CustomMethod,delay); // obj.onmouseover=function(){clearInterval(interval);} // obj.onmouseout=function(){interval=setInterval(obj.CustomMethod, delay);} } }