jQuery实现图片走马灯效果的原理分析


Posted in Javascript onJanuary 16, 2016

本文实例分析了jQuery实现图片走马灯效果的原理。分享给大家供大家参考,具体如下:

这里只讲解水平走马灯效果,垂直向上走马灯效果不讲解,原理一样,但是水平走马灯效果有一个小坑。待会讲解

先上代码:

HTML:

<div class="box">  
  <div style="width: 1000px;" id="boxdiv">
   <ul>
    <li style="display: block;" title="清灵少女宛如梦境仙女"><a href="#">
     <img src="images/110927/11-11092G32227.jpg" /></a></li>
    <li title="美女海边性感透视装诱惑"><a href="#">
     <img src="images/130621/1-130621145931-50.jpg" /></a></li>
    <li title="夏小薇:百变小魔女变身性感数码宝贝"><a href="#">
     <img src="images/130620/19-130620115013.jpg" /></a></li>
    <li title="夏小薇化身《杀破狼》粉色妖姬鲜嫩欲滴"><a href="#">
     <img src="images/130315/5-130315135240.jpg" /></a></li>
   </ul>
  </div>
</div>

在<div class="box">中,再包含了一个div,且设置了一个很比较大的宽度,是为了解决一个在垂直走马灯下没有的坑。该坑的效果是在li标签float为left的情况,不要里面的DIV,会出现图片轮播后,显示中的最后一张图片由下向上的跳动效果,这是float的本身特性造成的,因为父元素宽度不够的情况下,后面的元素会自动往下左沉下去,一旦上面宽度够了,就会自动飘上来,这个飘就会造成显示中的最后一张图片的跳动效果,所以采用内部嵌套一个DIV 并设置<div class="box">的overflow CSS样式来解决该问题。

CSS:

.box
{
 width: 800px;
 height: 200px;
 margin-top: 100px;
 margin-left: 100px;
 overflow: hidden;
}
.box img
{
 border-style: none;
 height: 200px;
}
.box ul
{
 margin: 0px;
 padding: 0px;
 list-style-type: none;
}
.box ul li
{
  float: left;
}

脚本:

<script type="text/javascript">
$(document).ready(function () {
 new ZouMa().Start();
});
function ZouMa() {
 this.maxLength = 3; //最低显示数   
 this.Timer = 2000;//计时器间隔时间
 this.Ul = $(".box ul");
 var handId;//计时器id
 var self = this;
 this.Start = function () {
  if (self.Ul.children().length < this.maxLength) {
   self.Ul.append(self.Ul.children().clone());
  }
  handId = setInterval(self.Play, self.Timer);
 }
 this.Play = function () {
  var img = self.Ul.children().eq(0);
  var left = img.children().eq(0).width();
  img.animate({ "marginLeft": (-1 * left) + "px" }, 600, function () {
   //appendTo函数是实现走马灯一直不间断播放的秘诀。
   //目前网上看到的很多走马灯,走到最后一张的时候,会立马闪回第一张,而不是继续从后往前推进,即是没有明白该函数的作用的原因
   $(this).css("margin-left", "auto").appendTo(self.Ul);
  });
 }
}
</script>

此处照例使用了jquery的动画效果函数animate来实现走马灯效果,并配合appendTo函数来实现无尽播放的效果。

有关appendTo函数的作用请参阅jquery的API文档,animate也请参阅API文档

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript下IE与FF兼容函数收集
Sep 17 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
javascript的函数作用域
Nov 12 Javascript
jQuery中element选择器用法实例
Dec 29 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 Javascript
javascript实现数组去重的多种方法
Mar 14 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
JavaScript寄生组合式继承实例详解
Jan 06 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
Oct 26 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 #Javascript
input点击后placeholder中的提示消息消失
Jan 15 #Javascript
jQuery插件imgPreviewQs实现上传图片预览
Jan 15 #Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 #Javascript
利用CSS3在Angular中实现动画
Jan 15 #Javascript
JavaScript程序开发之JS代码放置的位置
Jan 15 #Javascript
探讨JavaScript标签位置的存放与功能有无关系
Jan 15 #Javascript
You might like
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
php中使用sftp教程
2015/03/30 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
js实现自定义路由
2017/02/04 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
开源Web应用框架Django图文教程
2017/03/09 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python制作填词游戏步骤详解
2019/05/05 Python
python正则表达式实例代码
2020/03/03 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
产品售后服务承诺书
2014/05/21 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
小学老师对学生的评语
2014/12/29 职场文书
南京南京观后感
2015/06/02 职场文书
初三化学教学反思
2016/02/22 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
Python数据分析之绘图和可视化详解
2021/06/02 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python