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 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
解决JS无法调用Controller问题的方法
Dec 31 Javascript
快速掌握Node.js事件驱动模型
Mar 21 Javascript
js带闹铃功能的倒计时代码
Sep 29 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
Dec 08 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
Apr 19 Javascript
Javascript异步编程async实现过程详解
Apr 02 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 Javascript
vue element实现表格合并行数据
Nov 30 Vue.js
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伪静态写法附代码
2008/06/20 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
Python简单计算文件夹大小的方法
2015/07/14 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python简单生成随机数的方法示例
2018/03/31 Python
python计算日期之间的放假日期
2018/06/05 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
基于Django实现日志记录报错信息
2019/12/17 Python
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
合作经营协议书范本
2014/04/17 职场文书
怎样写离婚协议书
2014/09/10 职场文书
监考失职检讨书
2015/01/26 职场文书
家长高考寄语
2015/02/27 职场文书
保送生自荐信
2015/03/06 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android