JQuery实现图片轮播效果


Posted in jQuery onMay 08, 2017

用JQuery操作DOM确实很方便,并且JQuery提供了非常人性化的API应付我们的各种需求,大大简化了js的代码。

制作原理:

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

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

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

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

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

代码说明:

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

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

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

程序源码

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="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" target="_blank"><img src="imgs/img_1.jpg" title="图片" alt="图片"/></a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" target="_blank"><img src="imgs/img_2.jpg" title="图片" alt="图片"/></a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" target="_blank"><img src="imgs/img_3.jpg" title="图片" alt="图片"/></a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" target="_blank"><img src="imgs/img_4.jpg" title="图片" alt="图片"/></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>

javascript代码:

<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 相关文章推荐
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
Jquery把获取到的input值转换成json
May 15 jQuery
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
关于jquery中attr()和prop()方法的区别
May 28 jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 jQuery
jQuery实现影院选座订座效果
Apr 13 jQuery
jQuery中的deferred对象和extend方法详解
May 08 #jQuery
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 #jQuery
jQuery动态追加页面数据以及事件委托详解
May 06 #jQuery
jquery点赞功能实现代码 点个赞吧!
May 29 #jQuery
jQuery extend()详解及简单实例
May 06 #jQuery
jquery仿微信聊天界面
May 06 #jQuery
简单实现jQuery弹幕效果
May 06 #jQuery
You might like
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
jquery ajax post提交数据乱码
2013/11/05 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
Django进阶之CSRF的解决
2018/08/01 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
python 错误处理 assert详解
2020/04/20 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
基于Python实现粒子滤波效果
2020/12/01 Python
销售简历自我评价
2014/01/24 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
教育教学读书笔记
2015/07/02 职场文书
公共场所卫生管理制度
2015/08/05 职场文书