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 相关文章推荐
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
基于bootstrap风格的弹框插件
Dec 28 Javascript
koa-router源码学习小结
Sep 07 Javascript
JavaScript判断对象和数组的两种方法
May 31 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 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
PHP与javascript对多项选择的处理
2006/10/09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
计算机专业个人简短的自我评价
2013/10/23 职场文书
就业表自我评价分享
2014/02/06 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
公休请假条
2014/04/11 职场文书
英语教师求职信
2014/06/16 职场文书
学历证明样本
2015/06/16 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书