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 相关文章推荐
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
js 使用form表单select类实现级联菜单效果
Dec 19 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
jQuery插件分享之分页插件jqPagination
Jun 06 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
Angular中实现树形结构视图实例代码
May 05 Javascript
使用vuex的state状态对象的5种方式
Apr 19 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 Javascript
JavaScript事件循环及宏任务微任务原理解析
Sep 02 Javascript
测量JavaScript函数的性能各种方式对比
Apr 27 Javascript
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
php4的session功能评述(一)
2006/10/09 PHP
PHP+DBM的同学录程序(2)
2006/10/09 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
关于jquery css的使用介绍
2013/04/18 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
python生成器表达式和列表解析
2016/03/10 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Django静态文件加载失败解决方案
2020/08/26 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
庭外和解协议书
2016/03/23 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers