jQuery插件scroll实现无缝滚动效果
投稿:hebedich
今天给大家分享一款页面无缝滚动的jquery.scroll插件。 支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置,滚动鼠标液动条看下页面的切换效果。该插件适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。
scroll滚动插件
支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置
默认配置参数可修改
$(".content").easysroll({ //默认配置参数 direction: "left", //滚动方向 left(向左)right(向右) top(向上) bottom(向下) 默认left numberr: "1", //每一次滚动数量 默认是1 delays:"1000",//完成一次动画所需时间 默认是1000等于1秒 scrolling: "1000",//每一次动画的时间间隔 默认是1000等于1秒 fadein:false,//是否支持淡入或淡出 默认false enterStop:true //鼠标移入是否暂停滚动 默认是true })
html代码:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>滚动插件(支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置)</title> <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="js/scroll.js" type="text/javascript"></script> </head> <style> *{ margin: 0px; padding: 0px;} .content{ width: 1010px; height:102px; overflow: hidden; border: #4e83c2 solid 1px; margin:50px auto; } .content ul{list-style: none; margin: 0px; padding: 0px; } .content ul li{ width: 100px; height: 100px; border:#ccc solid 1px; overflow: hidden;cursor: pointer;} </style> <body> <h1>支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置</h1> <div class="content"> <ul type="box"> <li><img src="uploads/allimg/150210/1-15021010125I64-lp.jpg"></li> <li><img src="uploads/allimg/150210/1-1502100934032T-lp.png"></li> <li><img src="uploads/allimg/150209/1-1502092312470-L.gif"></li> <li><img src="uploads/allimg/150209/1-1502091243010-L.jpg"></li> <li><img src="uploads/allimg/150208/1-15020Q549320-L.jpg"></li> <li><img src="uploads/allimg/150204/1-150204143012445.jpg"></li> <li><img src="uploads/150208/1-15020Q94340510.jpg"></li> <li><img src="uploads/150207/1-15020GG54I43.jpg"></li> <li><img src="uploads/allimg/131024/89.jpg"></li> <li><img src="uploads/allimg/131024/85.png"></li> <li><img src="uploads/allimg/131024/84.png"></li> <li><img src="uploads/allimg/131024/83.jpg"></li> <li><img src="uploads/allimg/131024/82.png"></li> <li><img src="uploads/allimg/131024/81.png"></li> <li><img src="uploads/allimg/131024/78.png"></li> </ul> </div> <div> $(".content").easysroll({<br> //默认配置参数<br> direction: "left", //滚动方向 left(向左)right(向右) top(向上) bottom(向下) 默认left<br> numberr: "1", //每一次滚动数量 默认是1<br> delays:"1000",//完成一次动画所需时间 默认是1000等于1秒<br> scrolling: "1000",//每一次动画的时间间隔 默认是1000等于1秒<br> fadein:false,//是否支持淡入或淡出 默认false<br> enterStop:true; //鼠标移入是否暂停滚动 默认是true<br> <br> })<br> <br> </div> <script> $(".content").easysroll({ //默认配置参数 direction: "left", //滚动方向 left(向左)right(向右) top(向上) bottom(向下) 默认left numberr: "1", //每一次滚动数量 默认是1 delays:"1000",//完成一次动画所需时间 默认是1000等于1秒 scrolling: "1000",//每一次动画的时间间隔 默认是1000等于1秒 fadein:false,//是否支持淡入或淡出 默认false enterStop:true; //鼠标移入是否暂停滚动 默认是true }) </script> </body> </html>
JS核心代码
(function ($) { $.fn.easysroll= function(options) { var parameter= { direction: "left", numberr: "1", delays:"1000", scrolling: "1000", fadein: false, enterStop:true }; var ops = $.extend(parameter,options); var $this=$(this); var _this=this; var _time=null; var obj=_this.find("[type='box']"); var items=obj.find("li"); var itemsleg=items.length; var itemsW=items.outerWidth(true); var itemsH=items.outerHeight(true); var _direction=ops.direction; var _numberr =ops.numberr; var _delays=ops.delays; var _scrolling =ops.scrolling; var _fadein=ops.fadein; var _enterStop=ops.enterStop; if(_direction=="top" || _direction=="bottom") { items.css({"float":"none"}); obj.width(itemsW*itemsleg); if(_direction=="bottom") { obj.css("margin-top",-_numberr*itemsH); } }else if(_direction=="left" || _direction=="right"){ items.css({"float":"left"}); obj.width(itemsW*itemsleg); if(_direction=="right") { obj.css("margin-left",-_numberr*itemsW); } }else{ alert("您配置的滚动方向有误,请重新配置"); return true; } function scroll(){ if(_direction=="left"){ obj.animate({"margin-left":-_numberr*itemsW},Number(_delays),function(){ for (var i=0;i<_numberr;i++){ obj.find("li").eq(0).appendTo(obj); } obj.css({"margin-left":0}) if(_fadein){ obj.find("li").eq(0).animate({"opacity":0},Number(_delays)); obj.find("li").eq(itemsleg-1).css({"opacity":1}); } }); }else if(_direction=="right"){ obj.animate({"margin-left":0},Number(_delays),function(){ for(var i=0;i<_numberr;i++){ obj.find("li").eq(itemsleg-1).prependTo(obj); }; obj.css("margin-left",-_numberr*itemsW); if(_fadein){ obj.find("li").eq(0).animate({"opacity":1},Number(_delays)); obj.find("li").eq(itemsleg-1).css({"opacity":0}); } }); }else if(_direction=="top"){ obj.animate({"margin-top":-_numberr*itemsH},Number(_delays),function(){ for (var i=0;i<_numberr;i++){ obj.find("li").eq(0).appendTo(obj); } obj.css({"margin-top":0}); if(_fadein){ obj.find("li").eq(0).animate({"opacity":0},Number(_delays)); obj.find("li").eq(itemsleg-1).css({"opacity":1}); } }); }else if(_direction=="bottom"){ obj.animate({"margin-top":0},Number(_delays),function(){ for(var i=0;i<_numberr;i++){ obj.find("li").eq(itemsleg-1).prependTo(obj); } obj.css("margin-top",-_numberr*itemsH); if(_fadein){ obj.find("li").eq(0).animate({"opacity":1},Number(_delays)); obj.find("li").eq(itemsleg-1).css({"opacity":0}); } }); } } $this.hover(function(){ if(_enterStop){ clearInterval(_time); } },function(){ _time= setInterval(scroll,_scrolling); }).trigger('mouseleave'); } })(jQuery);
以上所述就是本文的全部内容了,希望大家能够喜欢。