Jquery 图片轮播实现原理总结

以前要做图片轮播效果的时候,总是在网上找一段jquery的复制粘贴进去,只索取不奉献,今个就把我对这个的实现原理讲解一下。

  首先说下,我在网上找的例子全是用的UL 实现,其实大可不必,只要是能包含img标签的HTML标签都可以做轮播效果。利用jquery的淡入淡出函数(fadeIn和fadeOut)。废话也不多说,边上代码边讲解。最后附上demo效果地址。

先HTML布局:

  <!--整体容器-->
<div class="imgbox">
<!--图片列表,除第一张显示外,其余隐藏-->
<ul>
<li style="display: block;" title="清灵少女宛如梦境仙女"><a href="#">
<img src="http://p.dddddd.net/uploads/allimg/110927/11-11092G32227.jpg" /></a></li>
<li title="美女海边性感透视装诱惑"><a href="#">
<img src="http://tu.dushiys.com/uploads/allimg/130621/1-130621145931-50.jpg" /></a></li>
<li title="夏小薇:百变小魔女变身性感数码宝贝"><a href="#">
<img src="http://p.dddddd.net/uploads/allimg/130620/19-130620115013.jpg" /></a></li>
<li title="夏小薇化身《杀破狼》粉色妖姬鲜嫩欲滴"><a href="#">
<img src="http://imgtu.5239.com/uploads/allimg/130315/5-130315135240.jpg" /></a></li>
</ul>
<div class="title_bg common"><!--图片标题背景-->
</div>
<!--图片显示标题-->
<div class="title common"></div>
<!--图片序号-->
<div class="pager common">
<ul>
<li>4</li>
<li>3</li>
<li>2</li>
<li style="background: #FF70Ad;">1</li>
</ul>
</div>
</div>

CSS部分:

img{border-style:none;}
.imgbox{width:530px;margin:100px;height:350px;}
.imgbox img{width:530px;height:350px;}
.imgbox ul{list-style-type:none;margin:0px;padding:0px;}
.imgbox ul li{display:none;}
.title_bg{z-index:1;background-color:#000;filter:alpha(opacity=30);-moz-opacity:0.3;opacity:0.3;}
.title{z-index:2;color:#FFF;text-indent:10px;font-size:14px;line-height:40px;}
.pager{z-index:3;}
.common{position:relative;height:40px;margin-top:-43px;}
.pager ul{margin-top:5px;}
.pager ul li{float:right;color:#FFF;font-size:15px;display:block;border:2px solid #e5eaff;width:25px;height:25px;margin-right:4px;margin-top:5px;text-align:center;line-height:25px;background-color:#6f4f67;cursor:pointer;}

脚本:

 $(document).ready(function () {
(new CenterImgPlay()).Start();
});
function CenterImgPlay() {
this.list = $(".imgbox").children(":first").children();
this.indexs = [];
this.length = this.list.length;
//图片显示时间
this.timer = 3000;
this.showTitle = $(".title"); var index = 0, self = this, pre = 0, handid, isPlay = false, isPagerClick = false; this.Start = function () {
this.Init();
//计时器,用于定时轮播图片
handid = setInterval(self.Play, this.timer);
};
//初始化
this.Init = function () {
var o = $(".pager ul li"), _i; for (var i = o.length - 1, n = 0; i >= 0; i--, n++) {
this.indexs[n] = o.eq(i).click(self.PagerClick);
}
};
this.Play = function () {
isPlay = true;
index++;
if (index == self.length) {
index = 0;
}
//先淡出,在回调函数中执行下一张淡入
self.list.eq(pre).fadeOut(300, "linear", function () {
var info = self.list.eq(index).fadeIn(500, "linear", function () {
isPlay = false;
if (isPagerClick) { handid = setInterval(self.Play, self.timer); isPagerClick = false; }
}).attr("title");
//显示标题
self.showTitle.text(info);
//图片序号背景更换
self.indexs[index].css("background-color", "#FF70Ad");
self.indexs[pre].css("background-color", "#6f4f67"); pre = index;
});
};
//图片序号点击
this.PagerClick = function () {
if (isPlay) { return; }
isPagerClick = true; clearInterval(handid); var oPager = $(this), i = parseInt(oPager.text()) - 1; if (i != pre) {
index = i - 1;
self.Play();
}
};
};

轮播的脚本是个人的一点小习惯,一般不轻易向jquery中写入扩展函数.诸位莫要在意。

通过以上的代码,实现轮播的核心主要是对jquery的fadeIn和fadeOut函数的调用,另外考察的就是CSS布局的功力了。

在上面显示图片标题的地方不能用绝对定位,于是用的relative定位,这个地方是布局的核心部分,否则无法将标题和图片序号放在图片之上。

title_bg 这个类及对应的div主要是为了实现标题的背景色透明,因为直接在标题上设置背景色透明,会造成文字也是有透明度的。

附上demo地址:轮播演示原理demo

 
 
分类: HTML+CSSJavaScript

Jquery 图片轮播实现原理总结的更多相关文章

  1. jQuery 图片轮播的代码分离

    以前遇到过jQuery实现列表自动滚动,这次的图片轮播在原理上与之相同,只有一些细微的差别,就是需要在图片的右下角显示当前图片的序号. html代码,以及对应的css代码: <div id=&q ...

  2. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  3. 12款经典的白富美型—jquery图片轮播插件—前端开发必备

    图片轮播是网站中的常用功能,用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美 ...

  4. Nivo Slider - 世界上最棒的 jQuery 图片轮播插件

    Nivo Slider 号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如 ...

  5. IOS 图片轮播实现原理 (三图)

    IOS 图片轮播实现原理的一种 图片轮播所要实现的是在一个显示区域内通过滑动来展示不同的图片. 当图片较少时我们可以采用在滚动视图上添加很多张图片来实现. 但是如果图片数量较多时,一次性加载过多图片会 ...

  6. jquery图片轮播插件slideBox

    效果预览: 源代码下载: jQuery图片轮播(焦点图)插件jquery.slideBox 特点:兼容IE6+,Chrome,Firefox,Opera,safari,可左右,可上下,可快可慢,可指定 ...

  7. jquery 图片轮播demo实现

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 图片轮播demo,弄清楚过程其实是一个很简单的东西,看网上都没有什么实质性的代码,就自己把过程捋了一遍实现了. 这次因为随手写的,所以没有做 ...

  8. jquery图片轮播效果(unslider)

    今天做网站(住建局网站)需要用到图片轮播,刚开始想借鉴DTCMS上的,查看CSS与页面代码,呵呵,不复杂,直接复制过来,结果调整半天,页面还是各种乱,没办法,网上找一个吧,于是找到了今天要说的这货un ...

  9. Jquery图片轮播和CSS图片轮播

    学习Jquery以后,很多时候觉得比写源生代码要简单一点.我们用JQuery做了一个图片轮播的动画,感觉比写CSS要简单一些.下面我来具体讲一下是怎么用JQuery来写. <body> & ...

随机推荐

  1. mysql分表分库

    单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 随着用户数量的增加,user表的数据量会越来越大,当数 ...

  2. 多线程学习之二坚不可摧模式Immutable pattern

    Immutable pattern[坚不可摧模式] 一:immutable pattern的参与者--->immutable(不变的)参与者        1.1:immutable参与者是一个 ...

  3. RethinkDB创始人教你如何打造一个伟大的互联网产品

    关于作者 我叫Slava Akhmechet,本人是 RethinkDB 的创始人之一,RethinkDB是开源,分布式数据库,旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大 ...

  4. 移植MonkeyRunner的图片对比和获取子图功能的实现-Appium篇

    如果你的目标测试app有很多imageview组成的话,这个时候monkeyrunner的截图比较功能就体现出来了.而其他几个流行的框架如Robotium,UIAutomator以及Appium都提供 ...

  5. or1200于IMMU分析

    以下摘录<步骤吓得核心--软-core处理器的室内设计与分析>一本书 1 IMMU结构 OR1200中实现IMMU的文件有or1200_immu_top.v.or1200_immu_tlb ...

  6. JavaEE——Intellij Idea 创建JavaWeb项目

    原文:JavaEE--Intellij Idea 创建JavaWeb项目 折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运 ...

  7. windows tcp端口映射或端口转发

    windows tcp端口映射或端口转发 windows内部有一个叫netsh的玩意,可以把tcp端口进行映射或转发,可惜不支持udp.举个例子:一台windows有一个80端口,对外可以访问.另有一 ...

  8. 基于Jcrop的图片上传裁剪加预览

    最近自己没事的时候研究了下图片上传,发现之前写的是有bug的,这里自己重新写了一个! 1.页面结构 <!DOCTYPE html> <html lang="en" ...

  9. 地图坐标Base64转换数字坐标

    测试地图源码==百读Demo<html> <head> </head> <body> <script type="text/javasc ...

  10. 搭建开发框架Express,实现Web网站登录验证

    NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证   JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需 ...