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 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
javascritp实现input输入框相关限制用法
Jun 29 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
Dec 16 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
Sep 04 Javascript
vue中多个倒计时实现代码实例
Mar 27 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 Javascript
ES2020系列之空值合并运算符 '??'
Jul 22 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常用文件操作函数汇总
2014/11/22 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
js实现放大镜特效
2017/05/18 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
详解package.json版本号规则
2019/08/01 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python动态加载模块的3种方法
2014/11/22 Python
Python fileinput模块使用实例
2015/05/28 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
python实现停车管理系统
2018/11/30 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
Python文件操作的面试题
2013/06/22 面试题
高中生毕业自我鉴定范文
2013/12/22 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
2014年质量工作总结
2014/11/22 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
Python中使用ipython的详细教程
2021/06/22 Python