快捷导航
蚂蚁部落 网站首页 实例代码 JS实例 查看内容

js实现的随机漂浮广告代码实例

2017-6-27 16:27| 发布者: 蚂蚁小编| 查看: 744| 评论: 0|来自: 蚂蚁部落

随机漂浮广告在很多网站都有应用,可以在网页中随机运动,具有良好的展现效果,但是对于是否有利于提高网站的人性化程度可能就另当别论了,因为很多浏览者对此比较厌烦,不过有这样的需求,作为程序员的我们就要满足,下面就通过代码实例介绍一下如何实现此效果,代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
div#roll 
{
  width:100px;
  height:100px;
  background-color:green;
  color:#fff;
  position:absolute;
  font-size:12px;
  text-align:center;
  line-height:100px;
}
</style>
<script type="text/javascript">
var interval=null;
var ggRoll=null;
window.onload=function()
{
  ggRoll={
    roll:document.getElementById("roll"),
    speed:20,
    statusX:1,
    statusY:1,
    x:100,
    y:300,
    winW:document.documentElement.clientWidth-document.getElementById("roll").offsetWidth,
    winH:document.documentElement.clientHeight-document.getElementById("roll").offsetHeight,
    Go:function(){
      this.roll.style.left = this.x + 'px';
      this.roll.style.top = this.y + 'px';
      this.x = this.x + (this.statusX ? -1 : 1)
      if(this.x < 0) { this.statusX = 0 }
      if(this.x > this.winW) { this.statusX = 1 }
      this.y=this.y + (this.statusY ? -1 : 1)
      if(this.y < 0) { this.statusY = 0 }
      if (this.y > this.winH) { this.statusY = 1 }
    }
  }
  interval=setInterval(function(){ggRoll.Go()},ggRoll.speed);
  ggRoll.roll.onmouseover=function(){clearInterval(interval)};
  ggRoll.roll.onmouseout=function(){interval=setInterval(function(){ggRoll.Go()},ggRoll.speed)};
}
</script>
</head>
<body>
<div id="roll">蚂蚁部落欢迎您</div>
</body>
</html>

以上代码实现了我们的要求,一个小的div块会在网页中四处飘动,在实际应用中换成广告就可以了,下面就详细介绍一下它的实现过程,希望能够给需要的朋友带来一定的帮助。

一.代码注释:

1.var interval=null,声明一个变量并赋值为null,后面会用作定时器函数的返回值。

2.var ggRoll=null,声明一个变量,用来存储一个对象。

3.window.onload=function(){},当文档内容完全加载完毕再去执行函数中的代码。

4.ggRoll={},创建一个对象直接量。

5.roll:document.getElementById("roll"),获取id属性值为roll的对象。

6.speed:20,规定飘动速度,其实即使定时器函数每隔多长时间执行一次。

7.statusX:1,规定每执行一次函数,left属性值变化的幅度。

8.statusY:1,规定没执行一次函数,top舒心只变化的幅度。

9.x:100,规定初始状态下left属性的值。

10.y:300,规定初始状态top的属性的值。

11.winW:document.documentElement.clientWidth-document.getElementById("roll").offsetWidth,差值用来测算left属性值的极限。

12.winH:document.documentElement.clientHeight-document.getElementById("roll").offsetHeight,差值用来测算top属性值的极限。

13.Go:function(){},声明一个函数,它完成了漂浮的核心。

14.this.roll.style.left = this.x + 'px',设置div的left属性值。

15.this.roll.style.top = this.y + 'px',设置div的top属性值。

16.this.x = this.x + (this.statusX ? -1 : 1),如果statusX=1则每次增1px,否则减1px。

17.if(this.x < 0) { this.statusX = 0 },如果left属性值小于0,那么将statusX 设置为0。

18.if(this.x > this.winW) { this.statusX = 1 },如果left属性值大于winW,也就是div要超出右边界了,就将statusX值设置为1。

二.相关阅读:

1.clientWidth属性可以参阅clientWidth一章节。 

2.offsetWidth属性可以参阅offsetWidth用法一章节。 

3.setInterval()函数可以参阅setInterval()一章节。 

4.clearInterval()函数可以参阅clearInterval()方法一章节。 


鲜花

握手

雷人

路过

鸡蛋

最新评论

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-9-26 17:03 , Processed in 0.061172 second(s), 21 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

返回顶部