jQuery动画效果实现图片无缝连续滚动


Posted in Javascript onJanuary 12, 2016

本文实例介绍了jQuery动画效果实现图片无缝连续滚动的详细代码,分享给大家供大家参考,具体内容如下

效果图如下:

jQuery动画效果实现图片无缝连续滚动

一、HTML代码

<body> 
  <div id="container"> 
    <ul id="content"> 
      <li><a href="#"><img src="images/0.png"/></a></li> 
      <li><a href="#"><img src="images/1.png"/></a></li> 
      <li><a href="#"><img src="images/tewu.png"/></a></li> 
      <li><a href="#"><img src="images/2.png"/></a></li> 
      <li><a href="#"><img src="images/tewu.png"/></a></li> 
      <li><a href="#"><img src="images/3.png"/></a></li> 
      <li><a href="#"><img src="images/4.png"/></a></li> 
    </ul> 
  </div> 
</body>

1. id为container的div是最外层的包装,用来控制滚动区域显示的具体位置。
2. id为content的ul用来包装那些需要滚动的图片。

3. li元素就是用来包装具体的图片。

二、CSS代码

*{margin: 0; padding: 0;} 
 
img{ 
  border:0; 
} 
 
#container{ 
  width:800px; 
  height: 130px; 
<span style="white-space:pre">  </span>margin:100px auto; 
  border:3px solid blue; 
  overflow: hidden; 
  position: relative; 
} 
 
#container ul{ 
  list-style: none; 
  width:10000px; 
  position: absolute; 
} 
 
#container ul li{ 
  float:left; 
  margin-right: 20px; 
}

这里说明一点,ul 的 width为什么设置为10000px。 因为无缝连续滚动的实现原理,就是在现有显示图片的基础上克隆一份,并且拼接在显示图片的后面,但由于显示图片的总宽度是未知的,所以为了安全性,最好将ul的width宽度设置比较大些。

三、无缝连续滚动原理分析

jQuery动画效果实现图片无缝连续滚动

四、JQuery实现代码

<script type="text/javascript"> 
/* window.onload比 $(function(){}) 加载的更晚一些,这样那些宽度的计算在Chrome中就可以准确计算了*/  
  window.onload = function(){ 
 
    /*计算一个segment的宽度*/ 
 
    var segmentWidth = 0; 
    $("#container #content li").each(function(){ 
      segmentWidth+= $(this).outerWidth(true); 
    }); 
 
    $("#container #content li").clone().appendTo($("#container #content")); 
 
    run(6000); 
 
    function run(interval){ 
      $("#container #content").animate({"left":-segmentWidth}, interval,"linear",function(){ 
        $("#container #content").css("left",0); 
        run(6000); 
      }); 
    } 
 
    $("#container").mouseenter(function(){ 
      $("#container #content").stop(); 
    }).mouseleave(function(){ 
      var passedCourse = -parseInt($("#container #content").css("left")); 
      var time = 6000 * (1 - passedCourse/segmentWidth); 
      run(time); 
    }); 
  }; 
     
</script>

1. 先通过each遍历所有的li元素,计算出它们宽度之和。
2. 拷贝一份图片到现有图片的后面,原理分析图的"图一"所示。

3. 设置6秒钟滚动完界面上面现有的图片,滚动完毕后,通过设置content的left值,将其整体拉回到初始状态,原理分析图的"图二"所示。然后递归调用run方法,完成无限滚动。

4. 当鼠标经过滚动区域的时候,动画立刻停止; 当鼠标离开的时候,动画继续执行。

关于动画继续执行的代码,如下图分析:

jQuery动画效果实现图片无缝连续滚动

以上就是jQuery实现图片无缝连续滚动的代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
JS通过Cookie判断页面是否为首次打开
Feb 05 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
Mar 31 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
详解vue 组件之间使用eventbus传值
Oct 25 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
Nov 06 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
jqueryMobile使用示例分享
Jan 12 #Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
Jan 12 #Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 #Javascript
基于JavaScript实现div层跟随滚动条滑动
Jan 12 #Javascript
JavaScript继承模式粗探
Jan 12 #Javascript
轻松实现Bootstrap图片轮播
Apr 20 #Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
Jan 12 #Javascript
You might like
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
python中星号变量的几种特殊用法
2016/09/07 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Python是怎样处理json模块的
2020/07/16 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
中专自荐信
2013/10/13 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
公司贷款承诺书
2014/05/30 职场文书
班级活动总结格式
2014/08/30 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
六一亲子活动感想
2015/08/07 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
详解Java实践之适配器模式
2021/06/18 Java/Android