JavaScript实现轮播图

  1 <!DOCTYPE html>
  2 <html>
  3   <head>
  4     <meta charset="utf-8">
  5     <title>carousel</title>
  6     <style type="text/css">
  7       *{margin: 0;padding: 0;text-decoration: none;}
  8       body{padding: 20px;}
  9       #container{width: 384px;height: 216px;border: 3px solid #333;overflow: hidden;position: relative;}
 10       #list{width: 2688px;height: 216px;position: absolute;z-index: 1;}
 11       #list img{float: left;}
 12       #list img{width: 384px;height: 216px;}
 13       #buttons {position: absolute;height: 10px;width: 100px;z-index: 2;bottom: 20px;left: 140px;}
 14       #buttons span{cursor: pointer;float: left;border: 1px solid #fff;width: 10px;height: 10px;border-radius: 50%;background: #333;margin-right: 5px;}
 15       #buttons .on{background: orangered}
 16       .arrow{cursor: pointer;display:none;line-height: 39px;text-align: center;font-size: 36px;font-weight: bold;width: 40px;height: 40px;position:absolute;z-index: 2;top: 90px;background-color: rgba(0, 0, 0, 0.3);color: #fff}
 17       .arrow:hover{background-color: rgba(0, 0, 0, 0.7);}
 18       #container:hover .arrow{display: block;}
 19       #prev{left: 20px;}
 20       #next{right: 20px;}
 21     </style>
 22     <script type="text/javascript">
 23         window.onload=function(){
 24           var container=document.getElementById(‘container‘);
 25           var list=document.getElementById("list");
 26           var buttons=document.getElementById(‘buttons‘).getElementsByTagName("span");
 27           var prev=document.getElementById("prev");
 28           var next=document.getElementById(‘next‘);
 29           var animated=false;
 30           var timer;
 31           //小圆点
 32           var index=1;
 33           function showButton() {
 34             //亮起当前图片对应的小圆点的同时关闭其他亮起的小圆点
 35             for (var i = 0; i < buttons.length; i++) {
 36               if (buttons[i].className == ‘on‘) {
 37                     buttons[i].className = ‘‘;
 38                     break;
 39               }
 40             }
 41             buttons[index - 1].className = ‘on‘;
 42           }
 43           function animate(offset) {
 44           animated=true;
 45           var newLeft=parseInt(list.style.left) + offset;
 46           //位移总时间
 47           var time=200;
 48           //位移时间间隔
 49           var interval=10;
 50           //每次位移量
 51           var speed=offset/(time/interval);
 52           function go(){
 53                 if((speed < 0 && parseInt(list.style.left) > newLeft ) || (speed >0 && parseInt(list.style.left) < newLeft)){
 54                   list.style.left=parseInt(list.style.left) + speed + ‘px‘;
 55                   setTimeout(go,interval);
 56                 }else{
 57                   animated=false;
 58                   //animate=false;
 59                   //list.style.left=parseInt(list.style.left) + offset +"px" ;
 60                   list.style.left=newLeft + "px";
 61
 62                   if (newLeft < -1920) {
 63                       list.style.left=-384 + "px";
 64                     }
 65                   if (newLeft > -384) {
 66                       list.style.left=-1920 + "px";
 67                     }
 68                 }
 69               }
 70                 go();
 71           }
 72           //自动播放功能
 73           function play(){
 74               timer=setInterval(function(){
 75                 next.onclick();
 76               },3000);
 77           }
 78           //清除定时器
 79           function stop(){
 80             clearInterval(timer);
 81           }
 82           //点击右箭头,left值减少384,实质是list(div框)左移384px
 83           next.onclick=function () {
 84             if (index == 5) {
 85               index = 1;
 86             }else{
 87               index += 1;
 88             }
 89
 90             showButton();
 91             if(!animated){
 92                 animate(-384);
 93             }
 94
 95           }
 96
 97           //点击左箭头
 98           prev.onclick=function (){
 99             if (index == 1) {
100               index=5;
101             }else{
102                 index -= 1;
103             }
104
105             showButton();
106             if(!animated){
107               animate(384);
108             }
109
110           }
111           //给每个小圆点添加点击事件
112           for (var i = 0; i < buttons.length; i++) {
113             buttons[i].onclick=function(){
114               //判断一下当前点击的小圆点对应的图片是否是当前现实的图片,如果是就不进行图片切换
115               if (this.className == ‘on‘) {
116                 return;
117               }
118               //获取当前点击小圆点的index值
119               //getAttribute可以获得DOM中的属性的值,也可以获得自定义属性的值
120               var myindex=parseInt(this.getAttribute(‘index‘));
121               //计算偏移量
122               var offset = -384 * (myindex - index);
123               //显示指定的图片
124               if(!animated){
125                   animate(offset);
126               }
127
128               //同时亮起对应的小圆点
129               index=myindex;
130               showButton();
131
132             }
133           }
134           //鼠标移入自动播放停止,清除定时器
135           container.onmouseover=stop;
136           container.onmouseout=play;
137           play();
138         }
139     </script>
140   </head>
141   <body>
142     <div id="container">
143       <div id="list" style="left:-384px;">
144         <img src="images/5.jpg" alt="" />
145         <img src="images/1.jpg" alt="" />
146         <img src="images/2.jpg" alt="" />
147         <img src="images/3.jpg" alt="" />
148         <img src="images/4.jpg" alt="" />
149         <img src="images/5.jpg" alt="" />
150         <img src="images/1.jpg" alt="" />
151       </div>
152       <div id="buttons">
153       <span index="1" class="on"></span>
154       <span index="2"></span>
155       <span index="3"></span>
156       <span index="4"></span>
157       <span index="5"></span>
158     </div>
159     <a href="javascript:" class="arrow" id="prev">&lt;</a>
160     <a href="javascript:" class="arrow" id="next">&gt;</a>
161   </div>
162   </body>
163 </html>

效果如图所示:

时间: 2024-10-24 22:05:50

JavaScript实现轮播图的相关文章

【JavaScript】轮播图

代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title></title> 6 <style type="text/css"> 7 *{margin:0 auto;padding: 0;} 8 #LB_div{overflow:hidden;position: relative;} 9 #L

JavaScript旋转木马轮播图

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>旋转木马轮播图</title> <link rel="stylesheet" href="css/css.css"/> <script src="common.js"><

JavaScript 动画轮播图

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ list-style: none; margin: 0; padding: 0; } #outer{ width: 320px; height: 300px; margin: 50px auto

JS 实现动态轮播图

JavaScript实现轮播图思路 + html/css + js源码 整个轮播图的效果是通过js代码,操作dom, 拿到html我们需要的元素,控制整个ul的距离浏览器左边的位置,让排好的图片依次出现在相框中,不在相框中的元素会被css中的 overflow : hidden 隐藏掉, 其次,图片是经过处理的 ,正好和我们的相关等宽等高! 动态的创建元素,下面我们会动态创建li,并通过css把它修饰成小按钮格式,其次给小按钮添加点击事件,鼠标经过,离开事件,动态的实现图片的移动, 其实就是根据

简单的 js手写轮播图

html: <div class="na1">   <div class="pp">    <div class="na">     <img class="dd" src="../img/shouji/1.jpg">    </div>    <div class="na">     <img class=&

原生javascript轮播图!

<style> .box { width: 500px; height: 275px; position: relative; margin: 100px auto; } a { text-decoration: none; font-size: 28px; text-align: center; line-height: 80px; display: inline-block; width: 40px; color:#fff; background:rgba(0,0,0,0.6); posi

javascript效果:手风琴、轮播图、图片滑动

最近都没有更,就来几个效果充实一下. 都没有进行美化这步. 手风琴: 纯css: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>手风琴css</title> <style> .showBox{ width: 660px; overflow: hidden; } ul{ list-style:

轮播图-JavaScript

轮播图一: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus?"> <meta name="Author" content=""> <meta name=

纯原生javascript仿网易轮播图

第一次有自己的关于代码的博客,感到诚惶诚恐.这可能是我第一次以程序猿,或者连初级程序猿都不是的身份下开通的个人“技术”(胡写乱写)博客园地.闲言碎语不要讲,咱今天就写一点关于js的代码吧.网易首页大家肯定都去过,在首页左侧部分有个轮播图,效果很好,构思精巧,非常诱人.注,此demo非本人原创,在这里进行个人解读,力求通俗易懂(主要是让我自己明白!). 那么如何实现相关技术,进而实现如图效果呢?下面的进度条是用JQuery写的,这里暂不考虑.下面从三个方面讨论网一轮播图. 一.HTML部分 1 <