JQuery实现图片轮播效果


Posted in Javascript onSeptember 15, 2015

【原理简述】

JQuery实现图片轮播效果

这里大概说一下整个流程:

1,将除了第一张以外的图片全部隐藏,

2,获取第一张图片的alt信息显示在信息栏,并添加点击事件

3,为4个按钮添加点击侦听,点击相应的按钮,用fadeOut,fadeIn方法显示图片

4,设置setInterval,定时执行切换函数

【代码说明】

filter(":visible") :获取所有可见的元素

unbind():从匹配的元素中删除绑定的事件

siblings:取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合

例:找到每个div的所有同辈元素中带有类名为selected的元素。

<p>Hello</p><div><span>Hello Again</span></div><p>And Again</p>

执行 $("div").siblings(),结果

[ <p>Hello</p>, <p>And Again</p> ]

【程序源码】
HTML部分:

<body>
<div id="banner"> 
<div id="banner_bg"></div><!--标题背景-->
<div id="banner_info"></div><!--标题-->
<ul>
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<div id="banner_list">
<a href="#" target="_blank"><img src="imgs/p1.jpg" title="橡树小屋的blog" alt="橡树小屋的blog"/></a>
<a href="#" target="_blank"><img src="imgs/p5.jpg" title="橡树小屋的blog" alt="橡树小屋的blog"/></a>
<a href="#" target="_blank"><img src="imgs/p3.jpg" title="橡树小屋的blog" alt="橡树小屋的blog"/></a>
<a href="#" target="_blank"><img src="imgs/p4.jpg" title="橡树小屋的blog" alt="橡树小屋的blog"/></a>
</div>
</div>
</body>

CSS部分:

<style type="text/css">
#banner {position:relative; width:478px; height:286px; border:1px solid #666; overflow:hidden;}
#banner_list img {border:0px;}
#banner_bg {position:absolute; bottom:0;background-color:#000;height:30px;filter: Alpha(Opacity=30);opacity:0.3;z-index:1000;
cursor:pointer; width:478px;}
#banner_info{position:absolute; bottom:0; left:5px;height:22px;color:#fff;z-index:1001;cursor:pointer}
#banner_text {position:absolute;width:120px;z-index:1002; right:3px; bottom:3px;}
#banner ul {position:absolute;list-style-type:none;filter: Alpha(Opacity=80);opacity:0.8; border:1px solid #fff;z-index:1002;
margin:0; padding:0; bottom:3px; right:5px;}
#banner ul li { padding:0px 8px;float:left;display:block;color:#FFF;border:#e5eaff 1px solid;background:#6f4f67;cursor:pointer}
#banner ul li.on { background:#900}
#banner_list a{position:absolute;} <!-- 让四张图片都可以重叠在一起-->
</style>

JS部分:

<script type="text/javascript">
var t = n =0, count;
$(document).ready(function(){ 
count=$("#banner_list a").length;
$("#banner_list a:not(:first-child)").hide();
$("#banner_info").html($("#banner_list a:first-child").find("img").attr('alt'));
$("#banner_info").click(function(){window.open($("#banner_list a:first-child").attr('href'), "_blank")});
$("#banner li").click(function() {
var i = $(this).text() -1;//获取Li元素内的值,即1,2,3,4
n = i;
if (i >= count) return;
$("#banner_info").html($("#banner_list a").eq(i).find("img").attr('alt'));
$("#banner_info").unbind().click(function(){window.open($("#banner_list a").eq(i).attr('href'), "_blank")})
$("#banner_list a").filter(":visible").fadeOut(500).parent().children().eq(i).fadeIn(1000);
document.getElementById("banner").style.background="";
$(this).toggleClass("on");
$(this).siblings().removeAttr("class");
});
t = setInterval("showAuto()", 4000);
$("#banner").hover(function(){clearInterval(t)}, function(){t = setInterval("showAuto()", 4000);});
})

function showAuto()
{
n = n >=(count -1) ?0 : ++n;
$("#banner li").eq(n).trigger('click');
}
</script>

以上就是JQuery实现图片轮播的全部思路过程,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
Javascript 代码也可以变得优美的实现方法
Jun 22 Javascript
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
JS继承 笔记
Jul 13 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
Mar 28 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
解决Layui中templet中a的onclick参数传递的问题
Sep 20 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 #Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
Sep 15 #Javascript
jquery图片轮播特效代码分享
Apr 20 #Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 #Javascript
jQuery焦点图切换特效代码分享
Sep 15 #Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 #Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
Sep 15 #Javascript
You might like
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
详解php中的implements 使用
2017/06/13 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
Python实现的多进程和多线程功能示例
2018/05/29 Python
python中sys.argv函数精简概括
2018/07/08 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python批量创建指定名称的文件夹
2019/03/21 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Django如何实现防止XSS攻击
2020/10/13 Python
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
传统软件工程与面向对象的软件工程有什么区别
2012/05/31 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python