jquery实现图片平滑滚动详解

前端之家收集整理的这篇文章主要介绍了jquery实现图片平滑滚动详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了jquery图片平滑滚动效果的具体代码,供大家参考,具体内容如下

随便写了个DOM,没有美观性,见谅

原理:

1、定义两组ul列表放图,第一个ul放5张图,第二个ul为空 2、为什么要用两个ul?因为要用到jQuery的克隆方法clone()。把第一个ul的图片全部克隆到第二个ul中,形成并列无缝滚动效果 3、.Box设置为绝对定位,.wrap设置为相对定位 4、设置定时器,让.Box的left值一直减-,当left值大于第一个ul的长度时,让他left等于0,然后再重新重置定时器,继续执行

代码部分:

//CSS

Box ul li{display: block;float: left;width: 300px;height: 300px;margin-right: -1px;background-size: cover;background-position: center center;} .Box{height: 300px;width:3010px;} #Box1,#Box2{float: left} .wrap{position: relative;width: 800px;margin: auto;height: 300px;overflow: hidden} .Box{position: absolute;left: 0;}

//HTML

Box">
    Box1">
    Box2">

//JQUERY

var timer='';//设置一个定时器 var $Box1=$('#Box1').children().clone(true);/*克隆Box1的子元素*/ $('#Box2').append($Box1);//将复制的元素插入到#Box2中 var $left=parseInt($('.Box').css('left'));//获取.Box的left值 var scroll=function(){ $left-=2;//设置滚动速度为2 $('.Box').css('left',$left+'px');//left赋值 if($left<-1500){//当Box值小于-1500px时,重置.Box left值为0; $('.Box').css('left','0'); $left=0; } timer =setTimeout(scroll,30); } setTimeout(scroll,100); $('.wrap').hover(function(){ clearTimeout(timer); },function(){ setTimeout(scroll,100); });

主要是理解思路,思路理清了,相信你不用看dom都会做了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的jQuery相关文章