zoukankan      html  css  js  c++  java
  • 漂浮广告代码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

  • 相关阅读:
    Atcoder D
    51nod 1201 整数划分(dp)
    Atcoder D
    Atcoder C
    codeforces 812 E. Sagheer and Apple Tree(树+尼姆博弈)
    codeforces 811 D. Vladik and Favorite Game(bfs水题)
    codeforces 811 E. Vladik and Entertaining Flags(线段树+并查集)
    codeforces 811 C. Vladik and Memorable Trip(dp)
    1449 砝码称重(思维)
    SQL大量数据查询的优化 及 非用like不可时的处理方案
  • 原文地址:https://www.cnblogs.com/akilis/p/2228389.html
Copyright © 2011-2022 走看看