/********************************************************************************
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);}
}
}