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 面向对象之命名空间
May 04 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
Jan 17 Javascript
javascript动态加载三
Aug 22 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
May 26 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
BootStrap模态框闪退问题实例代码详解
Dec 10 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
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
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP排序算法类实例
2015/06/17 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
python 日期操作类代码
2018/05/05 Python
Python-接口开发入门解析
2019/08/01 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
C语言50道问题
2014/10/23 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
个人简历自荐信
2013/12/05 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
法定代表人授权委托书
2014/04/04 职场文书
五一促销活动总结
2014/07/01 职场文书
公司委托书怎么写
2014/08/02 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
python使用glob检索文件的操作
2021/05/20 Python
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python