自动 点击切换 按钮切换 轮播无缝选项卡 ----原生js

  1 <!doctype html>
  2 <html>
  3 <head>
  4 <meta charset="utf-8">
  5 <meta name="author" content="智能社 - zhinengshe.com" />
  6 <meta name="copyright" content="智能社 - zhinengshe.com" />
  7 <meta name="description" content="智能社是一家专注于web前端开发技术的公司,目前主要提供JavaScript培训和HTML5培训两项服务,同时还推出了大量javascript基础知识教程,智能课堂为你带来全新的学习方法和快乐的学习体验。" />
  8 <title>智能社— http://www.zhinengshe.com</title>
  9 <style>
 10 *{ margin:0; padding:0; list-style:none;}
 11 #box{ width:534px; height:300px; position:relative; margin:50px auto; overflow:hidden;}
 12 #box ul{ position:absolute; left:0; top:0;}
 13 #box ul li{ float:left; width:534px; height:300px;}
 14 #box ul li img{ height:300px;}
 15
 16 #box a{ transition:.2s all ease;}
 17 #box .prev,#box .next{position:absolute;  top:50%; z-index:2; height:80px; line-height:80px; background:rgba(0,0,0,0.6); color:#fff; width:80px; text-align:center; margin-top:-40px; display:none;}
 18 #box .prev{ left:0;}
 19 #box .next{ right:0;}
 20 #box a:hover{ background:rgba(255,0,0,0.4);}
 21
 22 #box ol{ position:absolute; width:120px; left:50%; margin-left:-60px; bottom:10px;}
 23 #box ol li{ width:20px; height:20px; background:#f60; float:left; margin:2px; text-align:center; text-indent:-9999px; border-radius:50%;}
 24 #box ol li.active{ background:#fff;}
 25 </style>
 26 <script>
 27 window.onload=function(){
 28     var oBox=document.getElementById(‘box‘);
 29     var oPrev=oBox.children[0];
 30     var oNext=oBox.children[1];
 31     var oUl=oBox.getElementsByTagName(‘ul‘)[0];
 32     var aLi=oUl.children;
 33     var oOl=oBox.getElementsByTagName(‘ol‘)[0];
 34     var aBtn=oOl.children;
 35
 36     //先复制一份
 37     oUl.innerHTML+=oUl.innerHTML;
 38     //算宽度
 39     oUl.style.width=aLi.length*aLi[0].offsetWidth+‘px‘;
 40
 41     var W=oUl.offsetWidth/2;
 42
 43     //移入显示俩按钮
 44     oBox.onmouseover=function(){
 45         clearInterval(timer);
 46         oPrev.style.display=‘block‘;
 47         oNext.style.display=‘block‘;
 48     }
 49     oBox.onmouseout=function(){
 50         timer=setInterval(function(){
 51             iNow--;
 52             tab();
 53         },2000);
 54         oPrev.style.display=‘none‘;
 55         oNext.style.display=‘none‘;
 56     }
 57     //覆模循环一一对应。
 58     var iNow=0;
 59
 60     //选项卡
 61     for(var i=0; i<aBtn.length; i++){
 62         (function(index){
 63             aBtn[i].onclick=function(){
 64
 65                 if(index==0 && iNow%aBtn.length==aBtn.length-1){//循环一圈后,index=0;iNow%aBtn.length=最后一张图片的时候。iNow都处于
 66                     //++;
 67                     iNow++;
 68                 }
 69                 if(index==aBtn.length-1 && iNow%aBtn.length==0){//循环一圈后,index=最后一个下标;iNow%aBtn.length=第一张图片的时候。iNow都处于
 70                     //--;
 71                     iNow--;
 72                 }
 73
 74                 if(iNow>0){
 75                     iNow=Math.floor(iNow/aBtn.length)*aBtn.length+index;//Math.floor(iNow/aBtn.length)*aBtn.length  和newMove 对应起来,只要开始动就得走一屏幕。对应的按钮也在对应着变化。
 76                 }else{
 77                     if(index==0 && iNow%aBtn.length==-1){
 78                         iNow++;
 79                     }
 80                     iNow=Math.floor(iNow/aBtn.length)*aBtn.length+index;
 81                 }
 82                 tab();
 83                 document.title=iNow;
 84             }
 85         })(i);
 86     }
 87
 88     function tab(){
 89         for(var i=0; i<aBtn.length; i++){
 90             aBtn[i].className=‘‘;
 91         }
 92         if(iNow<0){
 93             aBtn[(iNow%aBtn.length+aBtn.length)%aBtn.length].className=‘active‘;
 94         }else{
 95             aBtn[iNow%aBtn.length].className=‘active‘;
 96         }
 97         //oUl.style.left=-iNow*aLi[0].offsetWidth+‘px‘;
 98         console.log(iNow)
 99         startMove(oUl,-iNow*aLi[0].offsetWidth);
100     }
101
102     //点击
103     oNext.onclick=function(){
104         iNow++;
105         tab();
106
107     }
108     var timer=null;
109     timer=setInterval(function(){
110         iNow--;
111         tab();
112     },2000);
113
114     oPrev.onclick=function(){
115         iNow--;
116         tab();
117
118     }
119     var left=0;
120     function startMove(obj,iTarget){
121         clearInterval(obj.timer);
122         obj.timer=setInterval(function(){
123             var iSpeed=(iTarget-left)/8;//  总的距离/8得到速度。
124                 //判断speed 正负,来取舍不同的值,不能为小数,每次都要求走一个li宽度。
125             iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
126
127             if(left==iTarget){//判断l=iTaegrt要关闭定时器
128                 clearInterval(obj.timer);
129             }else{
130                 left+=iSpeed;
131                 if(left<0){
132                     obj.style.left=left%W+‘px‘;
133                 }else{
134                     obj.style.left=(left%W-W)%W+‘px‘;
135                 }
136             }
137
138         },30);
139     }
140 }
141 </script>
142 </head>
143
144 <body>
145 <div id="box">
146     <a href="javascript:;" class="prev">prev</a>
147     <a href="javascript:;" class="next">next</a>
148     <ul>
149         <li><img src="img/0.jpg"></li>
150         <li><img src="img/1.jpg"></li>
151         <li><img src="img/2.jpg"></li>
152         <li><img src="img/3.jpg"></li>
153         <li><img src="img/4.jpg"></li>
154     </ul>
155     <ol>
156         <li class="active">0</li>
157         <li>1</li>
158         <li>2</li>
159         <li>3</li>
160         <li>4</li>
161     </ol>
162 </div>
163 </body>
164 </html>
时间: 2024-10-29 12:25:29

自动 点击切换 按钮切换 轮播无缝选项卡 ----原生js的相关文章

图片切换(非轮播,淡入淡出)--变形金刚joy007 项目总结

图片切换(非轮播,淡入淡出) 1.切换2.停止 <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <style type="text/css"> div{ position: absolute; left: 0px; top: 0px;} .div1{ width: 800px; hei

盒子 收藏帖子 转移-实现向网页自动填写用户名密码并自动点击登录按钮 完成全自动凳录

//实现向网页自动填写用户名密码并自动点击登录按钮 完成全自动凳录 Function FillForm(WebBrowser: TWebBrowser2; FieldName: String; Value: String): Boolean; Var i, j: Integer; FormItem: Variant; Begin Result := False; //no form on document If WebBrowser.OleObject.Document.all.tags('FO

浅谈轮播图(原生JavaScript实现)

现在各种轮播图插件,玲琅满目,用起来也非常方便,通常只需要选择元素然后传入参数就可以了.但是,和授人以鱼不如授人以渔一样的道理,不管怎样最基本的轮播图原理还是应当掌握的.这样不仅有利于我们自己写出来满足自己要求的轮播图,同时也对我们更好的使用其他插件有帮助.当然,最重要的是扎实我们的JavaScript基本功! 切入正题. 轮播,顾名思义,就是图片的循环"播放".播放可以自动(定时器)也可以手动(按钮).轮播的精要其实是切换,切换可以是上下左右不同方向的移动来实现切换,移动可以匀速小步

一个精悍的拥有一大波焦点图轮播滑动特效的Js程序——bxSlider

打开这个地址>>强大的支持手机端响应式的jQuery焦点图轮播特效插件bxslider.js(右键查看源代码) bxSlider官网http://bxslider.com/

原生js解决图片点击左右切换(简单轮播图)

想写一个综合性的小案例,主要会运用到数组和判断以及我前面几篇博客所复习到的js的知识.今天案例想要实现的效果图如下图所示: 效果是:点击"循环切换"按钮,那么"一号"位置的文案就要写入"图片可以循环",而下面的左右箭头在点击过程中可以循环点击,并且"二号"和"三号"要响应切换到相对应的数字和文字内容:否则,点击"顺序切换"按钮,那么"一号"位置的文案就要写入"

swipe.js实现支持手拔与自动切换的图片轮播

一.Html代码如下: <div id='mySwipe' style='max-width:500px;margin:0 auto' class='swipe'> <div class='swipe-wrap'> <li style="no-repeat center center; list-style-type: none;"><img src="/1.jpg" /></li> <li styl

Android中使用ViewPager实现屏幕页面切换和页面轮播效果

之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpager有自己的adapter,这也让其适应复杂对象,实现数据的动态加载. ViewPager是谷歌官方给我们提供的一个兼容低版本安卓设备的软件包,里面包囊了只有在安卓3.0以上可以使用的api.而viewpager就是其中之一,利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等. 下面我们就展示下Vie

JQuery和html+css实现带小圆点和左右按钮的轮播图

是的!你没看错!还是轮播图.这次的JQuery的哟!! CSS代码: /*轮播图 左右按钮 小白点*/ #second_div{ margin-top: 160px; } .img_box{ overflow: hidden; width:100%; height:420px; border:1px solid; position:relative; } .img_box img{ width:100%; position:absolute; } .ul5{ list-style: none;

Js效果:图片轮播;选项卡;侧面菜单下拉效果;进度条效果;滑动效果;好友列表选中效果;点击选中显示效果

选项卡效果表: <body><div id="aaa"> <div class="bbb" style="width:50px; height:30px; background-color:#3F0" onclick="Show('d1')">娱乐</div> <div class="bbb" style="width:50px; height