首页 > 语言 > JavaScript > 正文

js实现从右向左缓缓浮出网页浮动层广告的方法

2024-05-06 16:19:45
字体:
来源:转载
供稿:网友

这篇文章主要介绍了js实现从右向左缓缓浮出网页浮动层广告的方法,可实现右侧浮动广告的定时弹出及点击展开、折叠等功能,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了js实现从右向左缓缓浮出网页浮动层广告的方法。分享给大家供大家参考。具体实现方法如下:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml"
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <title>从右向左缓缓浮出的网页浮动层广告</title> 
  7. <script language="javascript"
  8. var $ = function (d){return document.getElementById(d)}; 
  9. var CLS={ 
  10. create: function() { 
  11. return function() { 
  12. this.$ADD = function (fn){CLS.add(this,fn)}; 
  13. this.init.apply(this, arguments); 
  14. }, 
  15. add:function (obj,fn){ 
  16. fn.apply(obj,arguments); 
  17. }, 
  18. enterFrame:function (){ 
  19. this.onEnterFrame=function (){}; 
  20. this.$PLAY = function (g){ 
  21. this.enterFrameP = this.enterFrameP || 10; 
  22. this.CLStimeIndex = CLS.ontimes.length; 
  23. CLS.ontimes.push(this); 
  24. window.clearTimeout(this.enterFrameTimeout); 
  25. window.clearInterval(this.enterFrameInterval); 
  26. if(g)this.enterFrameTimeout = window.setTimeout('CLS.ontimes['+this.CLStimeIndex+'].enterFrameInterval=window.setInterval("CLS.ontimes['+this.CLStimeIndex+'].onEnterFrame()",'+this.enterFrameP+')',parseInt(g*1000)); 
  27. else this.enterFrameInterval = window.setInterval("CLS.ontimes["+this.CLStimeIndex+"].onEnterFrame()",this.enterFrameP); 
  28. this.$STOP = function (){ 
  29. window.clearInterval(this.enterFrameInterval); 
  30. this.$SET = function (p){ 
  31. this.enterFrameP = p; 
  32. }, 
  33. ontimes:new Array() 
  34. }; 
  35. CLS.Marquee = CLS.create(); 
  36. CLS.Marquee.prototype = { 
  37. init:function (button,box,speed){ 
  38. this.box = $(box); 
  39. this.tit = $(button) 
  40. this.kong = $("kong"); 
  41. this.onOpen = true
  42. this.show = false
  43. this.time = 0; 
  44. this.speed = speed; 
  45. this.kong.style.height = this.box.offsetHeight +"px"
  46. this.Maxw = this.box.offsetWidth-this.tit.offsetWidth; 
  47. this.box.style.right = -this.box.offsetWidth + "px"
  48. this.boxTop = this.kong.offsetTop; 
  49. var _t = this
  50. this.tit.onclick = function (){ 
  51. this.show = true
  52. if(_t.onOpen){ 
  53. _t.onEnterFrame = _t.close; 
  54. _t.onOpen = false
  55. }else
  56. _t.onEnterFrame = _t.open; 
  57. _t.onOpen = true
  58. _t.$PLAY(); 
  59. }; 
  60. this.$ADD(CLS.enterFrame); 
  61. this.onEnterFrame = this.open; 
  62. this.$PLAY(); 
  63. }, 
  64. open:function(){ 
  65. this.tit.innerHTML = "-"
  66. var _r = parseInt(this.box.style.right); 
  67. var _b = (0 - _r)/30; 
  68. this.box.style.right = (_r + _b) +"px"
  69. this.kong.style.top = (document.documentElement.scrollTop + this.boxTop) +"px"
  70. if(_b==0 && !this.show){ 
  71. this.time +=10; 
  72. if(this.time>=this.speed*1000){ 
  73. this.show = true
  74. this.onOpen = false
  75. this.$STOP(); 
  76. this.onEnterFrame = this.close; 
  77. this.$PLAY();  
  78. }  
  79. }, 
  80. close:function (){ 
  81. this.tit.innerHTML = "+"
  82. var _r = parseInt(this.box.style.right); 
  83. var _b = (-this.Maxw - _r)/5; 
  84. this.box.style.right = Math.round(_r + _b) +"px"
  85. this.kong.style.top = (document.documentElement.scrollTop + this.boxTop) +"px"
  86. }; 
  87. window.onload = function (){ 
  88. setTimeout(function(){new CLS.Marquee("tit","abc",10)},3000); 
  89. //tit是点击按钮的Id ,abc是浮动块的ID,10是显示时长 
  90. }; 
  91. </script> 
  92. <style type="text/css"
  93. <!-- 
  94. #abc { 
  95. border: 1px solid #003399; 
  96. position: absolute; 
  97. height: 150px; 
  98. width: 220px; 
  99. right: -100%; 
  100. #abc #tit { 
  101. background-color: #0066FF; 
  102. position: relative; 
  103. height: 100%; 
  104. width: 20px; 
  105. color: #FFFFFF; 
  106. text-align: center; 
  107. float: left; 
  108. #kong { 
  109. position: absolute; 
  110. width: 100%; 
  111. top: 100px; 
  112. overflow: hidden; 
  113. top: 100px; 
  114. right: 0px; 
  115. .right { 
  116. float: right; 
  117. width: 190px; 
  118. padding: 5px; 
  119. --> 
  120. </style> 
  121. </head> 
  122. <body style="margin:0px;"
  123. <!--浮动框外面套一层,防止出现横向滚动条--> 
  124. <div id="kong"
  125. <!--浮动框--> 
  126. <div id="abc"
  127. <div id="tit">-</div> 
  128. <div class="right"
  129. <a href="/">网页上从右边缓缓弹出的广告框效果</a></div> 
  130. </div> 
  131. </div> 
  132. 右侧广告3秒后弹出 
  133. </body> 
  134. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选