JS跑馬燈效果實現(很好用)
阿新 • • 發佈:2019-01-27
原文地址: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>