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 查找新建元素代码
Jul 06 Javascript
jquery parent和parents的区别分析
Oct 02 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
JS实现图片放大镜效果的方法
Feb 27 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
Oct 26 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
Apr 29 Javascript
Vue2.x中的Render函数详解
May 30 Javascript
基于input框覆盖掉数字英文的实例讲解
Jul 21 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
Jan 10 Javascript
vue实现简单的日历效果
Sep 24 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 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
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
php开发环境配置记录
2011/01/14 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
Python的pycurl包用法简介
2015/11/13 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python读取实时数据流示例
2019/12/02 Python
解决Python3下map函数的显示问题
2019/12/04 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
京剧自荐信
2014/01/26 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
自荐信的基本格式
2014/02/22 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
给校长的建议书400字
2014/05/15 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
会计学自荐信
2014/06/03 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
依法行政工作汇报
2014/10/28 职场文书
小学教师党员承诺书
2015/04/27 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技