Discuz教程网

鼠标移到向上滚动的鼠标移上去停止

[复制链接]
authicon dly 发表于 2011-4-22 02:15:19 | 显示全部楼层 |阅读模式
一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆副本,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到"无缝"滚动的目的。  

具体步骤:  
1.向上滚动。  


  1. <div id=demo style=overflow:hidden;height:33px;width:500px;>  
  2. <div id=demo1>  
  3. 插入标签内容
  4. </div>  
  5. <div id=demo2></div>  
  6. </div>  
  7.    <script>  
  8.    var speed=30  
  9.    demo2.innerHTML=demo1.innerHTML //克隆demo1为demo2  
  10.    function Marquee(){  
  11. //当滚动至demo1与demo2交界时  
  12. if(demo2.offsetTop-demo.scrollTop<=0)   
  13. demo.scrollTop-=demo1.offsetHeight //demo跳到最顶端  
  14. else{  
  15. demo.scrollTop++  
  16.    }  
  17.    }  
  18.    var MyMar=setInterval(Marquee,speed)//设置定时器  
  19. //鼠标移上时清除定时器达到滚动停止的目的  
  20.    demo.onmouseover=function() {clearInterval(MyMar)}  
  21. //鼠标移开时重设定时器  
  22.    demo.onmouseout=function(){MyMar=setInterval(Marquee,speed)}  
  23.    </script>
复制代码

2.向下滚动。  

  1. <div id=demo style=overflow:hidden;height:33px;width:500px;>  
  2. <div id=demo1>  
  3. 插入标签内容
  4. </div>  
  5. <div id=demo2></div>  
  6. </div>  
  7.     <script>  
  8.     var speed=30  
  9.     demo2.innerHTML=demo1.innerHTML  
  10.     demo.scrollTop=demo.scrollHeight  
  11.     function Marquee(){  
  12.     if(demo1.offsetTop-demo.scrollTop>=0)  
  13.     demo.scrollTop+=demo2.offsetHeight  
  14.     else{  
  15.     demo.scrollTop--  
  16.     }  
  17.     }  
  18.     var MyMar=setInterval(Marquee,speed)  
  19.     demo.onmouseover=function() {clearInterval(MyMar)}  
  20.     demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}  
  21.     </script>
复制代码



3.向左滚动。  

  1. <div id=demo style=overflow:hidden;height:33px;width:500px;>  
  2. <table align=left cellpadding=0 cellspace=0 border=0>  
  3. <tr>  
  4. <td id=demo1 valign=top>  
  5. 插入标签内容
  6. </td>  
  7. <td id=demo2 valign=top></td>  
  8. </tr>  
  9. </table>  
  10. </div>  
  11.   <script>  
  12.   var speed=30  
  13.   demo2.innerHTML=demo1.innerHTML  
  14.   function Marquee(){  
  15.   if(demo2.offsetWidth-demo.scrollLeft<=0)  
  16.   demo.scrollLeft-=demo1.offsetWidth  
  17.   else{  
  18.   demo.scrollLeft++  
  19.   }  
  20.   }  
  21.   var MyMar=setInterval(Marquee,speed)  
  22.   demo.onmouseover=function() {clearInterval(MyMar)}  
  23.   demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}  
  24.   </script>
复制代码



4.向右滚动。  

  1. <div id=demo style=overflow:hidden;height:33px;width:500px;>  
  2. <table align=left cellpadding=0 cellspace=0 border=0>  
  3. <tr>  
  4. <td id=demo1 valign=top>  
  5. 插入标签内容  
  6. </td>  
  7. <td id=demo2 valign=top></td>  
  8. </tr>  
  9. </table>  
  10. </div>  
  11.   <script>  
  12.   var speed=30  
  13.   demo2.innerHTML=demo1.innerHTML  
  14. demo.scrollLeft=demo.scrollWidth  
  15.   function Marquee(){  
  16.   if(demo.scrollLeft<=0)  
  17.   demo.scrollLeft+=demo2.offsetWidth  
  18.   else{  
  19.   demo.scrollLeft--  
  20.   }  
  21.   }  
  22.   var MyMar=setInterval(Marquee,speed)  
  23.   demo.onmouseover=function() {clearInterval(MyMar)}  
  24.   demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}  
  25.   </script>
复制代码







上一篇:javascript+div+ul+li 文字不间断向上滚动
下一篇:自动向上滚动的文本,鼠标放上去就停止
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 16:19

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表