jquery實現的垂直或者水平無縫滾動外掛
無縫滾動效果在大量的網站都有應用,甚至可以說幾乎是普通企業網站必備的,可以比較良好的展現網站的相關產品等內容,同時也能夠增加網站動態的感覺,下面就是一段實現此功能的程式碼,通常情況下都是滾動圖片的,但是下面的程式碼為了演示方便,使用背景圖替代圖片,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html><html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ margin:0; padding:0; } ul, ul li{ list-style:none; } .wrap{ width:1000px; margin:50px auto; } .box1, .box2, .box3{ overflow:hidden; float:left; border:1px solid gray; } .box1{ width:200px; height:450px; } .box1 ul li{ width:200px; height:100px; } .box2, .box3{ width:450px; height:150px; margin:40px; } .box2 ul li, .box3 ul li{ width:100px; height:150px; float:left; } </style> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script type="text/javascript"> (function($){ $.fn.Scroll=function (options){ //將當前上下文物件存入root var root = this; //預設配置 var settings = { speed: 40, //滾動速度,值越大速度越慢 direction: "x" //滾動方向("x"或者"y" [x橫向;y縱向]) }; //不為空,則合併引數 if(options){ $.extend(settings, options); } var timer = []; //計時器 var marquee; //滾動器(函式) var isRoll; //判斷是否滾動(函式) var _ul = $("> ul", root); //ul標籤 var _li = $("> ul > li", root); //li標籤(集合) var li_num = _li.length; //li標籤個數 var li_first = _li.first(); //獲取單個li標籤 //判斷為縱向還是橫向,並進行相應操作 if(settings.direction == "x"){ var li_w = li_first.outerWidth(true); //單個li標籤的寬度 var ul_w = li_w * li_num; //ul標籤的寬度 _ul.css({ width: ul_w }); //設定ul寬度 marquee = function () { _ul.animate({ marginLeft: "-=1" }, 0, function () { var _mleft = Math.abs(parseInt($(this).css("margin-left"))); if (_mleft > li_w){ //滾動長度一旦大於單個li的長度 $("> li:first", $(this)).appendTo($(this)); //就把第一個li移到最後 $(this).css("margin-left", 0); //滾動長度歸0 } }); }; //ul長度小於box長度時則不滾動,反之滾動 isRoll = function (t) { if (ul_w <= root.width()) clearInterval(t); else marquee(); } } else{ var li_h = li_first.outerHeight(true); //單個li標籤的高度 var ul_h = li_h * li_num; //ul標籤的高度 _ul.css({ height: ul_h }); //設定ul高度 marquee = function () { _ul.animate({ marginTop: "-=1" }, 0, function () { var _mtop = Math.abs(parseInt($(this).css("margin-top"))); //取絕對值 if (_mtop > li_h) { $("> li:first", $(this)).appendTo($(this)); $(this).css("margin-top", 0); } }); }; //ul長度小於box長度時則不滾動,反之滾動 isRoll = function (t) { if (ul_h <= root.height()) clearInterval(t); else marquee(); } } //遵循鏈式原則,並進行初始化 return root.each(function (i) { //超出內容隱藏,防止使用者沒寫overflow樣式 $(this).css({ overflow: "hidden" }); timer[i] = setInterval(function () { isRoll(timer[i]); }, settings.speed); //滑鼠進入停止滾動,離開繼續滾動 $(this).hover(function () { clearInterval(timer[i]); }, function () { timer[i] = setInterval(function () { isRoll(timer[i]); }, settings.speed); }); }); }; })(jQuery); $(function(){ //奇數背景設定為灰色 $('.box1 li:even,.box2 li:even,.box3 li:even').css({ backgroundColor: "gray" }); $(".box1").Scroll({ direction: "y" }); //設定為縱向滾動 $(".box2").Scroll(); //預設橫向滾動 $(".box3").Scroll(); }); </script> </head> <body> <div class="wrap"> <div class="box1"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <div class="box2"> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> </div> </body> </html>
上面的程式碼實現了垂直和水平滾動效果,程式碼這裡也就不多介紹了,程式碼進行相關的註釋,感興趣的朋友可以自行進行一下分析,直接套用就可以了,如有任何問題可以跟帖留言。
相關文章
- jQuery 圖片列表垂直間歇無縫滾動jQuery
- CSS 水平無縫滾動CSS
- js程式碼實現的圖片水平無縫滾動JS
- 原生javascript實現的水平圖片無縫滾動效果JavaScript
- CSS水平無縫滾動效果CSS
- JQuery實現圖片輪播無縫滾動jQuery
- JavaScript水平無縫滾動程式碼JavaScript
- jQuery 間歇的無縫滾動jQuery
- JavaScript 垂直新聞公告無縫滾動JavaScript
- css3水平無縫滾動效果CSSS3
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- vue無縫滾動的外掛開發填坑分享Vue
- jQuery圖片無縫滾動效果jQuery
- CSS實現迴圈無縫滾動CSS
- JavaScript垂直新聞公告無縫滾動詳解JavaScript
- 單行新聞公告間歇垂直無縫滾動
- 如何開發一款 60fps 的“無縫滾動”外掛
- js無縫滾動JS
- jQuery實現的元素抖動外掛jQuery
- 直播系統原始碼,vue實現無縫滾動原始碼Vue
- 11 個最佳 jQuery 滾動條外掛jQuery
- 無縫迴圈滾動
- 原生javascript實現的圖片無縫滾動程式碼分析JavaScript
- jQuery實現的div垂直水平居中例項程式碼jQuery
- 邏輯難理解版本的輪播圖(實現無縫滾動)
- js實現的單行文字不間斷無縫滾動效果JS
- H5移動端獲獎無縫滾動動畫實現H5動畫
- js-字幕無縫滾動JS
- JavaScript無縫滾動 記錄JavaScript
- vue.js無縫滾動Vue.js
- jQuery實現的div在視窗中垂直水平居中效果jQuery
- Jquery外掛Nicescroll 製作漂亮的滾動條jQuery
- 水平垂直居中的實現方法
- Flexslider – 響應式 jQuery 滾動外掛FlexIDEjQuery
- 原生JS實現一個無縫輪播圖外掛(支援vue)JSVue
- 以vue元件或者外掛的形式,實現throttle或者debounceVue元件
- jQuery實現的cookie操作外掛jQueryCookie
- HTMl 中marquee標籤實現無縫滾動跑馬燈效果HTML