js实现自动轮换选项卡


Posted in Javascript onJanuary 13, 2017

本文实例为大家分享了js自动轮换选项卡的具体代码,供大家参考,具体内容如下

效果图:

js实现自动轮换选项卡

代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{padding:0;margin:0;}
ul{list-style:none;}
#content{width:300px;height:200px;margin:150px auto;border:10px solid #ccc;padding:10px;}
#top{width:300px;height:50px;background:#ccc;}
#top a{height:50px;line-height:50px;font-size:20px;text-decoration:none;color:#000;display:inline-block;padding:0 10px;}
#top a.active{background:yellow;}
#main{width:300px;height:150px;background:#f1f1f1;}
#main img{width:200px;height:150px;}
#main ul{width:100px;height:150px;display:inline-block;float:right;}
#main ul li{width:100px;height:50px;background:#f1f1f1;border-bottom:1px dotted #000;line-height:50px;text-align:center;}
#main ul li.active{background:blue;}
</style>
<script>
window.onload = function () {
 var content = document.getElementById('content');
 var top = document.getElementById('top');
 var aA = top.getElementsByTagName('a');
 var main = document.getElementById('main');
 var img = main.getElementsByTagName('img')[0];
 var aLi = main.getElementsByTagName('li');
 var arr = [
  { 
   title : '动漫',
   subtitle : ['波波鸟','白魔女','小龙女'],
   pics : ['img/1.png','img/2.png','img/3.png'],
  },
  { 
   title : '购物',
   subtitle : ['头盔','雪橇','内衣'],
   pics : ['img/4.png','img/5.png','img/6.png'],
  }
 ];
 var row = 0, col = 0;
 var timer = null;
 for ( var i = 0; i < arr.length; i++ ) {
  aA[i].innerHTML = arr[i].title;
  aA[i].index = i;
  aA[i].onmouseover = function () {
   tab(this.index);
  }
 }
 tab(0);
 content.onmouseover = function () {
  for ( var i = 0; i < aA.length; i++ ) {
   if (aA[i].className === 'active') {
    row = i;
    break;
   }
  }
  for ( var i = 0; i < aLi.length; i++ ) {
   if (aLi[i].className === 'active'){
    col = i;
    break;
   }
  }
  clearInterval(timer);
 }
 content.onmouseout = autoPlay;
 // 自动播放
 function autoPlay() {
  clearInterval(timer);
  timer = setInterval(function () {
   // 子标题++,逢子标题长度,
   // 并且主标题加1,
   // 当子标题和主标题当前inded=长度时,归0
   col++;
   if(col === aLi.length) row++;
   row %= aA.length;
   col %= aLi.length;
   for ( var i = 0; i < aLi.length; i ++ ) {
    aLi[i].className = '';
   }
   aLi[col].className = 'active';
   img.src = arr[row].pics[col];
   for ( var i = 0; i < aLi.length; i++ ) {
    aLi[i].innerHTML = arr[row].subtitle[i];
   }
   for ( var i = 0; i < aA.length; i ++ ) {
    aA[i].className = '';
   }
   aA[row].className = 'active';
  }, 2000);
 }
 autoPlay();
 function tab(index) {
  for ( var i = 0; i < aA.length; i++ ){
   aA[i].className = '';
  }
  aA[index].className = 'active';

  for ( var j = 0; j < arr[index].subtitle.length; j++ ) {
   aLi[j].innerHTML = arr[index].subtitle[j];
   aLi[j].index = j;
   aLi[j].onmouseover = function () {
    for ( var i = 0; i < aLi.length; i ++ ) {
     aLi[i].className = '';
    }
    this.className = 'active';
    img.src = arr[index].pics[this.index];
   }
  }
  img.src = arr[index].pics[0];
  for ( var i = 0; i < aLi.length; i++ ){
   aLi[i].className = '';
  }
  aLi[0].className = 'active';  
 }
}
</script>
</head>

<body>
<div id="content">
 <div id="top">
  <a href="javascript:;"></a>
  <a href="javascript:;"></a>
 </div>
 <div id="main">
  <img/>
  <ul>
   <li></li>
   <li></li>
   <li></li>
  </ul>
 </div>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS Replace()的高级使用方法介绍
Jun 29 Javascript
js+css实现回到顶部按钮(back to top)
Mar 02 Javascript
javascript 广告移动特效的实现代码
Jun 25 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
Sep 23 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
Sep 19 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 Javascript
微信小程序实现页面左右滑动
Nov 16 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 #Javascript
详解angularJs中自定义directive的数据交互
Jan 13 #Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 #Javascript
很棒的一组js图片轮播特效
Jan 12 #Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 #Javascript
微信小程序 详解Page中data数据操作和函数调用
Jan 12 #Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 #Javascript
You might like
NOT NULL 和NULL
2007/01/15 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
浅析is_writable的php实现
2013/06/18 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
layui的select联动实现代码
2019/09/28 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
浅谈python函数之作用域(python3.5)
2017/10/27 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python如何保证输入键入数字的方法
2019/08/23 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
中专毕业生个人职业生涯规划
2014/02/19 职场文书
农业项目建议书
2014/08/25 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers