1. 程式人生 > >JS跑馬燈效果實現(很好用)

JS跑馬燈效果實現(很好用)

原文地址:http://blog.csdn.net/yangsen251024/article/details/8614305

實現跑馬燈效果的JS很多,但是很多不好用,下面介紹一個比較好用的。

好用之處在於:

1 支援一個頁面多個跑馬燈效果
2.支援跑馬燈內容的非同步載入
關鍵的實現程式碼,如果看不懂,可以跑這個列子
<body>
<ul id="RunTopic">
<li>文字1</li>
<li>文字2</li>
<li>文字3</li>
<li>文字4</li>
<li>文字5</li>

</ul>
<br>
<input type="button" onclick="test();" value="test">
<script type="text/javascript">
function test()
{
$("#RunTopic").find("li:first").appendTo($("#RunTopic"));
}
</script>
</body>


另外,也可以使用HTML的marquee 標籤,我剛測試而來下,chrome,IE8,火狐都支援!

如:

 <marquee direction="up" scrollamount="1" style="width: 210px;height: 100px" id="">
    <a href="#">纖雲弄巧,飛星傳恨,銀漢迢迢暗度。</a><br />
    <a href="#">金風玉露一相逢,便勝卻、人間無數。</a><br />
    <a href="#">柔情似水,佳期如夢。忍顧鵲橋歸路!</a><br />
    <a href="#">兩情若是久長時,又豈在、朝朝暮暮。</a><br />
    <a href="#">千重劫,百世難,亙古匆匆,彈指間!</a><br />
    <a href="#">不死軀,不滅魂,震古爍今,無人敵!</a><br />
    <a href="#">待到陰陽逆亂時,以我魔血染青天!</a><br />
</marquee>


########################################################################################

JS程式碼:
(function($){ 
$.fn.extend({ 
RollTitle: function(opt,callback){ 
if(!opt) var opt={}; 
var _this = this; 
_this.timer = null; 
_this.lineH = _this.find("li:first").height(); 
_this.line=opt.line?parseInt(opt.line,15):parseInt(_this.height()/_this.lineH,10); 
_this.speed=opt.speed?parseInt(opt.speed,10):3000, //捲動速度,數值越大,速度越慢(毫秒 
_this.timespan=opt.timespan?parseInt(opt.timespan,13):5000; //滾動的時間間隔(毫秒 
if(_this.line==0) this.line=1; 
_this.upHeight=0-_this.line*_this.lineH; 
_this.scrollUp=function(){ 
_this.animate({ 
marginTop:_this.upHeight 
},_this.speed,function(){ 
for(i=1;i<=_this.line;i++){ 
_this.find("li:first").appendTo(_this); 
} 
_this.css({marginTop:0}); 
}); 
} 
_this.hover(function(){ 
clearInterval(_this.timer); 
},function(){ 
_this.timer=setInterval(function(){_this.scrollUp();},_this.timespan); 
}).mouseout(); 
} 
}) 
})(jQuery); 
HTML程式碼:
line:一次捲動的文字行數 
speed:捲動動畫的時間 
timespan:間隔時間 
<html> 
<body> 
<ul id="RunTopic"> 
<li>文字1</li> 
<li>文字2</li> 
<li>文字3</li> 
<li>文字4</li> 
<li>文字5</li> 
</ul> 
</body> 
<script type="text/javascript"> 
$(document.body).ready(function(){ 
$("#RunTopic").RollTitle({line:1,speed:200,timespan:1500}); 
}); 
</script> 
</html>