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 相关文章推荐
js类 from qq
Nov 13 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
Jun 19 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
May 09 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
jquery点击展示与隐藏更多内容
Dec 03 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
vue中如何自定义右键菜单详解
Dec 08 Vue.js
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
php获取参数的几种方法总结
2014/02/18 PHP
PHP数组操作类实例
2015/07/11 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python中List的sort方法指南
2014/09/01 Python
python集合类型用法分析
2015/04/08 Python
在Django中创建第一个静态视图
2015/07/15 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
Python IDLE清空窗口的实例
2018/06/25 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
python实现马丁策略的实例详解
2021/01/15 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
公关关系专员的自我评价分享
2013/11/20 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
军训教官感言
2014/03/02 职场文书
三严三实心得体会范文
2014/10/13 职场文书
安全生产工作汇报
2014/10/28 职场文书
个人承诺书格式范文
2015/04/29 职场文书