兼容IE和FireFox的间隔滚动代码

上一篇上一篇 | 下一篇下一篇发表时间:2008-1-3 14:47:44

兼容IE和FireFox的间隔滚动代码

网上按这个标题搜索能搜到一大坨,其实没一个好用的,可见网上文章一大抄。
自己改了改,调用方式参考例子,能适应一个页面内的多个不同的滚动。
调用应该挺简单的,可能稍微麻烦点的就是需要设置一下CSS

Source Code to Run


[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>兼容IE和FireFox的间隔滚动代码</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  6. <style type="text/css">
  7. <!--
  8. .scrolldiv {
  9.     overflow: hidden;
  10.     width: 600px;
  11.     height: 18px;
  12.     background: #E8F8F8;
  13.     padding: 0 10px;
  14. }
  15. .scrollmessage {
  16.     text-align: left;
  17. }
  18. .scrollmessage ul {
  19.     margin: 0px;
  20.     padding: 0px;
  21.     list-style: none;
  22. }
  23. .scrollmessage li {
  24.     height: 18px;
  25.     line-height: 18px;
  26. }
  27. -->
  28. </style>
  29. </head>
  30. <body>
  31. <div id="scroll1" class="scrolldiv">
  32. <div class="scrollmessage">
  33.   <ul>
  34.     <li><a href="#">11111111111111111!</a></li>
  35.     <li><a href="#">22222222222222222!</a></li>
  36.     <li><a href="#">33333333333333333!</a></li>
  37.     <li><a href="#">44444444444444444!</a></li>
  38.   </ul>
  39. </div>
  40. </div>
  41. <div id="scroll2" class="scrolldiv">
  42. <div class="scrollmessage">
  43.   <ul>
  44.     <li><a href="#">11111111111111111!</a></li>
  45.     <li><a href="#">22222222222222222!</a></li>
  46.     <li><a href="#">33333333333333333!</a></li>
  47.     <li><a href="#">44444444444444444!</a></li>
  48.   </ul>
  49. </div>
  50. </div>
  51. <script language="JavaScript">
  52. <!--
  53. function scrollObject(marqueesHeight, elemId) {
  54.     var stopscroll = false;
  55.     var scrollElem = document.getElementById(elemId);
  56.     with (scrollElem) {
  57.         style.height    = marqueesHeight;
  58.         style.overflow  = 'hidden';
  59.         noWrap          = true;
  60.     }
  61.     scrollElem.onmouseover = function() {
  62.         stopscroll = true;
  63.     }
  64.     scrollElem.onmouseout = function() {
  65.         stopscroll = false;
  66.     }
  67.     var divs = scrollElem.getElementsByTagName('div');
  68.     var scrollmessage1;
  69.     var scrollmessage2;
  70.     if (divs.length > 0) {
  71.         scrollmessage1 = divs[0];
  72.         scrollmessage2 = scrollmessage1.cloneNode(true)
  73.         scrollElem.appendChild(scrollmessage2);
  74.     }
  75.     var currentTop = 0;
  76.     var stoptime   = 0;
  77.     var delaytime  = 120;
  78.     function init_srolltext() {
  79.         scrollElem.scrollTop = 0;       
  80.     }
  81.     this.start = function(s, delay) {
  82.         init_srolltext();
  83.         setDelay(delay);
  84.         setInterval(s + '.scrollUp()', 10);
  85.     }
  86.     function setDelay(delay) {
  87.         if (delay > 0) {
  88.             delaytime = delay;
  89.         }
  90.     }
  91.     
  92.     this.scrollUp = function() {
  93.         if (stopscroll) {
  94.             return;
  95.         }
  96.        
  97.         currentTop ++;
  98.         if (currentTop == marqueesHeight + 1) {    //控制停留时间
  99.             stoptime ++;
  100.             currentTop --;
  101.             if(stoptime == delaytime) {
  102.                 currentTop = 0;
  103.                 stoptime = 0;
  104.             }
  105.         } else {
  106.             if (scrollmessage2.offsetHeight - scrollElem.scrollTop <= 0) {
  107.                 scrollElem.scrollTop -= scrollmessage1.offsetHeight;
  108.                 scrollElem.scrollTop ++ ;
  109.             }
  110.             else{
  111.                 scrollElem.scrollTop ++;
  112.             }
  113.         }
  114.     }
  115. }
  116. var scroll1 = new scrollObject(18, 'scroll1');
  117. scroll1.start('scroll1', 50); //停留间隔
  118. var scroll2 = new scrollObject(18, 'scroll2');
  119. scroll2.start('scroll2');
  120. //-->
  121. </script>
  122. </body>
  123. </html>
[本日志由 ui163 于 2008-1-3 14:47:44 编辑]
上一篇上一篇:关于DOM事件模型的两件事
下一篇下一篇:做网页的一些技巧
文章来自:
收藏到网摘: 收藏到QQ书签
Tags:

相关内容

网站建设导航→

相关内容

版权隐私 ┊  免责声明  ┊ 友情链接 ┊  学院地图  ┊  关于设计学院

Copyrights©2007-2008 UI163.com All Rights Reserved

 豫ICP备07501346号