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 相关文章推荐
扩展jquery实现客户端表格的分页、排序功能代码
Mar 16 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
可自己添加html的伪弹出框实现代码
Sep 08 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
Bootstrap实现水平排列的表单
Jul 04 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
JQuery常见节点操作实例分析
May 15 jQuery
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 Javascript
简单了解vue 插值表达式Mustache
Jul 22 Javascript
Vue-router编程式导航的两种实现代码
Mar 04 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计算页面执行时间的实现代码
2013/06/18 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
JavaScript 原型链学习总结
2010/10/29 Javascript
使用Firebug对js进行断点调试的图文方法
2011/04/02 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
javascript测试题练习代码
2012/10/10 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
Python struct模块解析
2014/06/12 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python中强大的format函数实例详解
2018/12/05 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
Java里面如何创建一个内部类的实例
2015/01/19 面试题
门面房租房协议书
2014/08/20 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
大连星海广场导游词
2015/02/10 职场文书
学校端午节活动总结
2015/02/11 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
立项申请报告范本
2015/05/15 职场文书