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实现加入收藏夹的代码
Oct 24 Javascript
不要使用jQuery触发原生事件的方法
Mar 03 Javascript
JavaScript DOM节点添加示例
Jul 16 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
JS实现图片居中悬浮效果
Dec 25 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
JavaScript实现英语单词题库
Dec 24 Javascript
Vue v-model组件封装(类似弹窗组件)
Jan 08 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 Javascript
vue 自定义的组件绑定点击事件
Apr 21 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
PHP字符编码问题之GB2312 VS UTF-8解决方法
2011/06/23 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
实例讲解React 组件
2020/07/07 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Django在win10下的安装并创建工程
2017/11/20 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
青年文明号复核材料
2014/02/11 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
质量安全标语
2014/06/07 职场文书
个人租房协议书样本
2014/10/01 职场文书
大四学生个人总结
2015/02/15 职场文书
法制主题班会教案
2015/08/13 职场文书
高中班主任寄语
2019/06/21 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
Python安装使用Scrapy框架
2022/04/12 Python