JS实现单行文字不间断向上滚动的方法_Javascript教程-查字典教程网
JS实现单行文字不间断向上滚动的方法
JS实现单行文字不间断向上滚动的方法
发布时间:2016-12-30 来源:查字典编辑
摘要:本文实例讲述了JS实现单行文字不间断向上滚动的方法。分享给大家供大家参考。具体分析如下:前几天帮一个朋友写了一个单行文字不间断向上滚动的JS...

本文实例讲述了JS实现单行文字不间断向上滚动的方法。分享给大家供大家参考。具体分析如下:

前几天帮一个朋友写了一个单行文字不间断向上滚动的JS效果,现在分享给需要的weber。先看HTML和CSS代码:

CSS:

复制代码 代码如下:.wrap{padding:10px;border:1px #ccc solid; width:500px;margin:20px auto;}

.roll-wrap{height:130px;overflow:hidden;}

HTML:

复制代码 代码如下:<div>

<div id="roll-wrap">

<ul>

<li>JS文本向上滚动1</li>

<li>JS文本向上滚动2</li>

<li>JS文本向上滚动3</li>

<li>JS文本向上滚动4</li>

<li>JS文本向上滚动5</li>

<li>JS文本向上滚动6</li>

<li>JS文本向上滚动7</li>

</ul>

</div>

</div>

该动画效果的原理是 先将ul向上滚动一个li的高度,滚动完后将ul里面的第一个li放到ul的末尾,这时原第二个li变成了ul里面的第一个li,然后再重复上面的动作,就这样不断重复实现不间断滚动。

JS(jQuery)代码:

复制代码 代码如下:function scrollTxt(){

var controls={},

values={},

t1=200, /*播放动画的时间*/

t2=2000, /*播放时间间隔*/

si;

controls.rollWrap=$("#roll-wrap");

controls.rollWrapUl=controls.rollWrap.children();

controls.rollWrapLIs=controls.rollWrapUl.children();

values.liNums=controls.rollWrapLIs.length;

values.liHeight=controls.rollWrapLIs.eq(0).height();

values.ulHeight=controls.rollWrap.height();

this.init=function(){

autoPlay();

pausePlay();

}

/*滚动*/

function play(){

controls.rollWrapUl.animate({"margin-top" : "-"+values.liHeight}, t1, function(){

$(this).css("margin-top" , "0").children().eq(0).appendTo($(this));

});

}

/*自动滚动*/

function autoPlay(){

/*如果所有li标签的高度和大于.roll-wrap的高度则滚动*/

if(values.liHeight*values.liNums > values.ulHeight){

si=setInterval(function(){

play();

},t2);

}

}

/*鼠标经过ul时暂停滚动*/

function pausePlay(){

controls.rollWrapUl.on({

"mouseenter":function(){

clearInterval(si);

},

"mouseleave":function(){

autoPlay();

}

});

}

}

new scrollTxt().init();

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类