jQuery插件scroll实现无缝滚动效果

前端技术 2023/09/02 JavaScript

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);

以上所述就是本文的全部内容了,希望大家能够喜欢。

本文地址:https://www.stayed.cn/item/4031

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。