上回的文章里提到了文字滚屏效果。是无限滚动下去的。
现在弄一个可控制的单步滚动效果。
- var scrollHori={
- locked:0, //锁死
- vector:0, //左右向量
- start:function(thiso){
- if (scrollHori.locked == 0){
- if (thiso.id == 'rollLeft'&&$id('rollBox').scrollLeft!=0) { //按到往左按钮,且在左侧有内容
- scrollHori.vector = -5;
- scrollHori.scroll();
- }
- if (thiso.id =='rollRight'&&$id('rollBox').scrollLeft!=($id('rollList').offsetWidth-$id('rollBox').offsetWidth)){ //按到往右按钮,且在右侧有内容
- scrollHori.vector = 5;
- scrollHori.scroll();
- }
- }
- },
- scroll:function(){
- var step=0;
- var size=$id('rollList').offsetWidth/$tag('li',$id('rollList')).length; //单个内容总宽(包括margin)
- play = setInterval(function(){
- if(size>step){ //单步滚动
- $id('rollBox').scrollLeft+=scrollHori.vector;
- step+=Math.abs(scrollHori.vector);
- scrollHori.locked = 1; //滚动的时候锁死
- }
- else{
- scrollHori.stop();
- }
- }, 5);
- },
- stop:function(){
- if (window.play) {
- clearInterval(window.play); //清除反复
- scrollHori.locked = 0; //开锁
- }
- }
- }
竖排的话可以省力很多。
(不过下面的效果本来就更简单)
相关文章:
- 《无缝滚动字幕》
标签: js动画, setInterval, 图片滚动, 滚动展示
这个代码找好久了,终于找到了。
回复
非常棒!!!
回复