元素轮播之图片轮播

图片轮播是很多站点的一个需求,实现图片轮播效果的方法有多种

方法一:(淡入式)

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <title></title>
  5     <script type="text/javascript" src="JS/jquery-1.11.3.js"></script>
  6     <style type="text/css">
  7         #banners {
  8             width:1000px;
  9             height:500px;
 10             margin:0 auto;
 11             position:relative;
 12         }
 13
 14         .banner {
 15             display:block;
 16             width:1000px;
 17             height:500px;
 18             position:absolute;
 19         }
 20
 21         #bars {
 22             display:table;
 23             margin:0 auto;
 24         }
 25
 26         .bar {
 27             display:inline-block;
 28             width:40px;
 29             height:6px;
 30             margin:0 5px;
 31             background-color:#B3B9AF;
 32         }
 33     </style>
 34
 35     <script type="text/javascript">
 36         window.onload = function () {
 37             $(function () {
 38                 var banners = document.getElementsByClassName("banner");
 39                 var bannersLength = banners.length;
 40                 var bars = document.getElementsByClassName("bar");
 41                 //定义一个定时循环淡入的指示器,方便后面取消定时循环淡入
 42                 var fade;
 43
 44                 //依次设置banner的堆叠层次,此处"堆叠增量"为1(且从1开始堆叠)
 45                 for (var i = 0; i < bannersLength; i++) {
 46                     $(banners[i]).css("z-index", (i + 1));
 47                 }
 48
 49                 //设置初始时的可见banner及其对应bar的指示色
 50                 for (var i = 0; i < bannersLength; i++) {
 51                     if (i == 0) {
 52                         $(banners[i]).css("display", "block");
 53                         $(bars[i]).css("background-color", "black");
 54                     } else {
 55                         $(banners[i]).css("display", "none");
 56                     }
 57                 }
 58
 59                 //定时循环淡入,fadeLoop只是对定时循环淡入的封装,方便后面调用
 60                 function fadeLoop() {
 61                     fade = setInterval(function () {
 62                         for (var i = 0; i < bannersLength; i++) {
 63                             if ($(banners[i]).css("display") == "block") {
 64                                 //使用模运算,实现周期性循环回归; fadeIndex指示要淡入的对象
 65                                 var fadeIndex = (i + 1) % bannersLength;
 66                                 $(banners[fadeIndex]).fadeIn(3000);
 67
 68                                 //设置已淡入对象的可见性
 69                                 $(banners[fadeIndex]).css("display", "block");
 70                                 //设置已淡入对象对应bar的指示色
 71                                 $(bars[fadeIndex]).css("background-color", "black");
 72
 73                                 for (var j = 0; j < bannersLength; j++) {
 74                                     //设置未淡入对象的可见性及其对应bar的指示色
 75                                     if (j != fadeIndex) {
 76                                         $(banners[j]).css("display", "none");
 77                                         $(bars[j]).css("background-color", "#B3B9AF");
 78                                     }
 79                                 }
 80
 81                                 //一旦for循环里的if条件得到满足,则使用break语句结束循环(也将结束包裹for循环的匿名函数)
 82                                 break;
 83                             }
 84                         }
 85                     }, 3000);//每3秒后执行一次淡入
 86                 }
 87
 88                 $(‘.banner‘).hover(
 89                     //鼠标移入banner时取消循环淡入
 90                     function () {
 91                         clearInterval(fade);
 92                     },
 93                     //鼠标移出banner时继续循环淡入
 94                     function () {
 95                         fadeLoop();
 96                     }
 97                 );
 98
 99                 $(‘.bar‘).hover(
100                     //鼠标移入bars中的某个bar时显示对应的banner图且置该bar的颜色为黑色,并取消定时循环淡入
101                     function (e) {
102                         $barImage = ‘#‘ + $(e.target).attr(‘id‘) + ‘Image‘;
103
104                         $(‘.banner‘).hide();
105                         $($barImage).fadeIn();
106
107                         $(‘.bar‘).css(‘background-color‘, ‘#B3B9AF‘);
108                         $(e.target).css(‘background-color‘, ‘black‘);
109
110                         clearInterval(fade);
111                     },
112                     //鼠标移出bars中的某个bar时继续定时循环淡入
113                     function () {
114                         fadeLoop();
115                     }
116                 );
117
118                 //执行循环淡入
119                 fadeLoop();
120             });
121         }
122     </script>
123 </head>
124 <body>
125     <div id="section1">
126         <div id="banners">
127             <!--
128                 每一个banner的id属性中的数字与其所对应的bar的id属性中的数字一致
129                 (该数字由可后端生成<在HTML的id属性层面使用数字进行元素关联>)
130             -->
131             <img src="images/banner1.jpg" id="bar1Image" class="banner" />
132             <img src="images/banner2.jpg" id="bar2Image" class="banner" />
133             <img src="images/banner3.jpg" id="bar3Image" class="banner" />
134         </div>
135         <div id="bars">
136             <span id="bar1" class="bar"></span>
137             <span id="bar2" class="bar"></span>
138             <span id="bar3" class="bar"></span>
139         </div>
140     </div>
141 </body>
142 </html>
时间: 2024-10-08 10:44:14

元素轮播之图片轮播的相关文章

Jquery实现图片轮播功能

周末闲暇时,参照http://www.cnblogs.com/babyzone2004/archive/2010/08/30/1812682.html实现了个jquery图片轮播特效 界面效果: css实现: *{     margin: 0; } div{     position:relative;     width:600px;     height:400px;     border:1px #000 solid;     overflow:hidden;     margin:aut

MUI组件二:复选框、对话框、图片轮播、图标和输入框

1.checkbox(复选框) checkbox常用于多选的情况,比如批量删除.添加群聊等: DOM结构 <div class="mui-input-row mui-checkbox"> <label>checkbox示例</label> <input name="checkbox1" value="Item 1" type="checkbox" checked> </di

沉浸式图片轮播器 -- DDGBannerScrollView使用文档

写在前面 几乎每个app都会用到图片轮播器,而且图片轮播器也越来越高大上,沉浸式等拉高了APP的档次 ,没有一个高大上的图片轮播器,都不好意思上架. 像一些知名的app都采用了图片轮播的背景渐变色,举几个栗子:优酷的首页,喜马拉雅,蜻蜓fm,哔哩哔哩漫画等, page索引也是玩的很高大上,系统的早已满足不了了需求. 鉴于此和项目的需要,在前人的基础上,整理了一个这个库,志在简单的几句代码,就能让应用看上去高大上. github:[DDGBannerScrollView](https://gith

CSS3图片轮播效果

原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且简单易用.下面介绍我用css3与js写的一个图片轮播效果. 一般图片轮播就是三四张图片: <div class="wrap"> <div class="carousel"> <div><img src="http://

面向对象编程---图片轮播

今天复习了一下面向对象编程,下面是我的效果图 看着这个图片你会觉得这没有什么,那么上代码: html部分: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style> 7 ul,ol,li{padding:0;margin:0;li

JQ 图片轮播并封装

利用面向对象自己动手写了一个封装好的jquery轮播对象,可满足一般需求,需要使用时只需调用此对象的轮播方法即可. demo:https://github.com/zsqosos/shopweb 具体代码如下: HTML结构: 1 <div class="banner" id="J_bg_ban"> 2 <ul> 3 <li><a href="#"><img src="banner_

图片轮播(左右切换)--js原生和jquery实现

图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章  淡入淡出 类似,只不过修改了一些特定的部分 (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外围部分(其实也就是最外边的整体wrapper) 2.接着就是你设置图片轮播的地方(也就是一个banner吧) 3.然后是一个图片组(可以用新的div 也可以直接使用 ul-->li形式) 4.然后是图片两端的左箭头和右箭头5.然后是一个透明背景层,放在图片底部 6.然后是一个图片描述info层,放在

图片轮播效果

今天有点空,写了个图片轮播的效果,使用了jq,直接上代码吧. 效果:http://edwardzhong.github.io/blog/2014/10/31/slidePics.html html如下: <div class="wrap"> <div class="left fl"><</div> <div class="right fr">></div> <div c

寻找织梦的图片轮播

debug <div class="picnews"> <dl class="tbox light"> <dt class='light'><strong>图文资讯</strong></dt> <dd class='light'> <div class="infiniteCarousel"> <div class="wrapper&qu