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 addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
模仿JQuery sortable效果 代码有错但值得看看
Nov 05 Javascript
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
jquery退出each循环的写法
Feb 26 Javascript
JQuery插入DOM节点的方法
Jun 11 Javascript
JavaScript中获取Radio被选中的值
Nov 11 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
Sep 04 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
JavaScript快速调试的两个技巧
Nov 04 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
简单的php 验证图片生成函数
2009/05/21 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
在Python中使用成员运算符的示例
2015/05/13 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
Python流程控制 if else实现解析
2019/09/02 Python
一份Java笔试题
2012/02/21 面试题
运动会稿件100字
2014/02/21 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
培训讲师岗位职责
2014/04/13 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
起诉书格式范文
2015/05/20 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis