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 textarea的长度进行验证
May 06 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
Apr 15 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
Jun 14 Javascript
javascript 树形导航菜单实例代码
Aug 13 Javascript
javascript基于DOM实现权限选择实例分析
May 14 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
May 03 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
微信小程序Echarts图表组件使用方法详解
Jun 25 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获取远程图片体积大小的实例
2013/11/12 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
Python3 中文文件读写方法
2018/01/23 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
python读取Kafka实例
2019/12/23 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
Python编写单元测试代码实例
2020/09/10 Python
python如何调用php文件中的函数详解
2020/12/29 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
环保志愿者活动总结
2014/06/27 职场文书
教代会闭幕词
2015/01/28 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
二胎满月酒致辞
2015/07/29 职场文书
股东协议书范本2016
2016/03/21 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python