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脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
JavaScript 内置对象属性及方法集合
Jul 04 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
Oct 28 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
Aug 05 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
vue地区选择组件教程详解
May 04 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
jQuery开发仿QQ版音乐播放器
Jul 10 jQuery
用Javascript实现发送短信验证码间隔功能
Feb 08 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP安全配置
2006/10/09 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
Python多线程实现同步的四种方式
2017/05/02 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
Python提取频域特征知识点浅析
2019/03/04 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
申请任职学生会干部自荐书范文
2014/02/13 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
生日祝酒词大全
2015/08/10 职场文书
党员心得体会范文2016
2016/01/23 职场文书
资产移交协议书
2016/03/24 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
docker 制作mysql镜像并自动安装
2022/05/20 Servers