JS实现单行文字不间断向上滚动的方法
网络编程 2021-07-04 21:47www.168986.cn编程入门
这篇文章主要介绍了JS实现单行文字不间断向上滚动的方法,以实例形式较为详细的分析了文字滚动效果实现的原理与技巧,需要的朋友可以参考下
本文实例讲述了JS实现单行文字不间断向上滚动的方法。分享给大家供大家参考。具体分析如下
前几天帮一个朋友写了一个单行文字不间断向上滚动的JS效果,现在分享给需要的weber。先看HTML和CSS代码
CSS
代码如下:
.wrap{padding:10px;border:1px #c solid; width:500px;margin:20px auto;}
.roll-wrap{height:130px;overflow:hidden;}
.roll-wrap{height:130px;overflow:hidden;}
HTML
代码如下:
<div class="wrap">
<div class="roll-wrap" 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>
<div class="roll-wrap" 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-" : "-"+values.liHeight}, t1, function(){
$(this).css("margin-" , "0").children().eq(0).appendTo($(this));
});
}
/自动滚动/
function autoPlay(){
/如果所有li标签的高度和大于.roll-wrap的高度则滚动/
if(values.liHeightvalues.liNums > values.ulHeight){
si=setInterval(function(){
play();
},t2);
}
}
/鼠标经过ul时暂停滚动/
function pausePlay(){
controls.rollWrapUl.on({
"mouseenter":function(){
clearInterval(si);
},
"mouseleave":function(){
autoPlay();
}
});
}
}
new scrollTxt().init();
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-" : "-"+values.liHeight}, t1, function(){
$(this).css("margin-" , "0").children().eq(0).appendTo($(this));
});
}
/自动滚动/
function autoPlay(){
/如果所有li标签的高度和大于.roll-wrap的高度则滚动/
if(values.liHeightvalues.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程序设计有所帮助。
上一篇:jQuery获取样式中颜色值的方法
下一篇:JS清除选择内容的方法
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指