JS 随机漂浮物

JS代码:

 

  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";
   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 = 25; //�ƶ��ٶ�  
      interval = setInterval(obj.CustomMethod, delay);
      obj.onmouseover = function() { clearInterval(interval); }
      obj.onmouseout = function() { interval = setInterval(obj.CustomMethod, delay); }
   }
  }
  

html代码:

<span id="floatBlock1"><a href="#" οnclick="queryEvaluationList();">
  <img src="http://www.baidu.com/img/baidu_logo.gif" alt="Baidu Logo" width="270" height="129" border="0" />
 </a></span>
 <span id="floatBlock2"><a href="#" οnclick="queryEvaluationList();">
  <img src="http://www.google.com/intl/zh-CN/logos/Logo_60wht.gif" alt="Google Logo" width="176" height="77" border="0" />
 </a></span>

 

<script type="text/javascript" language="JavaScript">
  var floatBlock1 = new AdMove("floatBlock1");
  floatBlock1.Run();
  var floatBlock2 = new AdMove("floatBlock2");
  floatBlock2.Run();
  floatBlock2.SetLocation(50, 100);
  floatBlock2.SetDirection(1, 1);
  
  function queryEvaluationList(){
     window.open ('http://www.baidu.com,'_blank','height=500,width=800,top=100,left=200,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes,location=yes,status=yes')
  }
  
 </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值