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 监听textarea中按键事件
Oct 08 Javascript
jQuery 处理表单元素的代码
Feb 15 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
Dec 07 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
Oct 30 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
js实现一键复制功能
Mar 16 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
解析php类的注册与自动加载
2013/07/05 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
jquery移动节点实例
2015/01/14 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
javascript的delete运算符知识点总结
2019/11/19 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python3.x对JSON的一些操作示例
2017/09/01 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
50道外企软件测试面试题
2014/08/18 面试题
通信生自我鉴定
2014/01/18 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android