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 相关文章推荐
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
form+iframe解决跨域上传文件的方法
Nov 18 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
Jun 19 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
Sep 07 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
小程序input数据双向绑定实现方法
Oct 17 Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 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
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
更夫岗位责任制
2014/02/11 职场文书
网络编辑职责
2014/03/01 职场文书
销售经理岗位职责
2014/03/16 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
农业项目合作意向书
2015/05/08 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
检讨书格式
2019/04/25 职场文书
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis