漂浮广告代码3

有一漂浮广告代码,效果同样不错,经测试,在ie9和chrome上都能正常运行。代码如下:

<!--begin of 漂浮AD-->

<SCRIPT type=text/javascript>

function addEvent(obj,evtType,func,cap){

    cap=cap||false;

if(obj.addEventListener){

     obj.addEventListener(evtType,func,cap);

   return true;

}else if(obj.attachEvent){

        if(cap){

         obj.setCapture();

         return true;

     }else{

      return obj.attachEvent("on" + evtType,func);

   }

}else{

   return false;

    }

}

function getPageScroll(){

    var xScroll,yScroll;

if (self.pageXOffset) {

   xScroll = self.pageXOffset;

} else if (document.documentElement && document.documentElement.scrollLeft){

   xScroll = document.documentElement.scrollLeft;

} else if (document.body) {

   xScroll = document.body.scrollLeft;

}

if (self.pageYOffset) {

   yScroll = self.pageYOffset;

} else if (document.documentElement && document.documentElement.scrollTop){

   yScroll = document.documentElement.scrollTop;

} else if (document.body) {

   yScroll = document.body.scrollTop;

}

arrayPageScroll = new Array(xScroll,yScroll);

return arrayPageScroll;

}

function GetPageSize(){

    var xScroll, yScroll;

    if (window.innerHeight && window.scrollMaxY) { 

        xScroll = document.body.scrollWidth;

        yScroll = window.innerHeight + window.scrollMaxY;

    } else if (document.body.scrollHeight > document.body.offsetHeight){

        xScroll = document.body.scrollWidth;

        yScroll = document.body.scrollHeight;

    } else {

        xScroll = document.body.offsetWidth;

        yScroll = document.body.offsetHeight;

    }

    var windowWidth, windowHeight;

    if (self.innerHeight) {

        windowWidth = self.innerWidth;

        windowHeight = self.innerHeight;

    } else if (document.documentElement && document.documentElement.clientHeight) {

        windowWidth = document.documentElement.clientWidth;

        windowHeight = document.documentElement.clientHeight;

    } else if (document.body) {

        windowWidth = document.body.clientWidth;

        windowHeight = document.body.clientHeight;

    } 

    if(yScroll < windowHeight){

        pageHeight = windowHeight;

    } else { 

        pageHeight = yScroll;

    }

    if(xScroll < windowWidth){ 

        pageWidth = windowWidth;

    } else {

        pageWidth = xScroll;

    }

    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 

    return arrayPageSize;

}

var AdMoveConfig=new Object();

AdMoveConfig.IsInitialized=false;

AdMoveConfig.ScrollX=0;

AdMoveConfig.ScrollY=0;

AdMoveConfig.MoveWidth=0;

AdMoveConfig.MoveHeight=0;

AdMoveConfig.Resize=function(){

    var winsize=GetPageSize();

    AdMoveConfig.MoveWidth=winsize[2];

    AdMoveConfig.MoveHeight=winsize[3];

    AdMoveConfig.Scroll();

}

AdMoveConfig.Scroll=function(){

    var winscroll=getPageScroll();

    AdMoveConfig.ScrollX=winscroll[0];

    AdMoveConfig.ScrollY=winscroll[1];

}

addEvent(window,"resize",AdMoveConfig.Resize);

addEvent(window,"scroll",AdMoveConfig.Scroll);

function AdMove(id){

    if(!AdMoveConfig.IsInitialized){

        AdMoveConfig.Resize();

        AdMoveConfig.IsInitialized=true;

    }

    var obj=document.getElementById(id);

    obj.style.position="absolute";

    obj.style.display = "";

    var W=AdMoveConfig.MoveWidth-obj.offsetWidth;

    var H=AdMoveConfig.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 + AdMoveConfig.ScrollX) + "px";

        obj.style.top = (y + AdMoveConfig.ScrollY) + "px";

        rad=(Math.random()+1)*Math.PI/6;

        W=AdMoveConfig.MoveWidth-obj.offsetWidth;

        H=AdMoveConfig.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);}

    }

}

</SCRIPT>

<!--end of 漂浮AD-->



<DIV id=ad1 style="Z-INDEX:5; display:none;">

<A href="http://www.lidefeng.cn/"><IMG src="http://www.lidefeng.cn/wp-content/uploads/2011/08/lidefenglogo11.png" border=0></A>

</DIV>





<SCRIPT type=text/javascript>

<!--

var ad1=new AdMove("ad1");

ad1.Run();

//-->

</SCRIPT>

  具体效果可查看页面:http://www.lidefeng.cn/test-code/Denim.html

原文地址:https://www.cnblogs.com/akilis/p/2228389.html