完美实现js选项卡切换效果(二)


Posted in Javascript onMarch 08, 2017

本文实例为大家分享了js选项卡切换的具体代码,供大家参考,具体内容如下

通过设置定时器实现延时0.5s切换,一个重要的技巧是定义了一个that变量来存放当前指针this。

之所以不能在这直接引用this是因为setTimeout是window对象,用this的话会指向定时器,所以要在前面定义一个变量。
还要注意调用定时器前要判断是否存在准备执行的定时器。

效果如图:

完美实现js选项卡切换效果(二)

具体代码:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>延时切换</title>
 <style type="text/css">
  *{margin: 0;padding: 0;font: normal 12px "微软雅黑";color: #000000;}
  ul{list-style-type: none;}
  a{text-decoration: none;}
  #tab-list{width: 275px;height: 190px;margin: 20px auto;}
  #ul1{border-bottom: 2px solid #8B4513;height: 32px;}
  #ul1 li{display: inline-block;width: 60px;line-height: 30px;text-align: center;
   border: 1px solid #999;border-bottom: none;margin-left: 5px;}
  #ul1 li:hover{cursor: pointer;}
  #ul1 li.active{border-top: 2px solid #8B4513;border-bottom: solid 2px #ffffff;}
  #tab-list div{border: 1px solid #7396B8;border-top: none;}
  #tab-list div li{height: 30px;line-height: 30px;text-indent: 8px;}
  .show{display: block;}.hide{display: none;}
 </style>
 <script type="text/javascript">
  window.onload=function(){
   var ul1=document.getElementById('ul1');
   var aLi=ul1.getElementsByTagName('li');
   var oDiv=document.getElementById('tab-list');
   var aDiv=oDiv.getElementsByTagName('div');
   var timer=null;
   for(var i=0;i<=aLi.length;i++){
    aLi[i].id=i;
    aLi[i].onmouseover=function(){
     var that=this;//用that这个变量来引用当前滑过的li
     //如果存在准备执行的定时器,立即清除,只能当前停留时间大于500ms时才开始执行(指鼠标快速滑过一个的那一瞬间要清除掉产生的定时器)
     if(timer){
      clearTimeout(timer);
      timer=null;
     }
     //延时半秒执行
     timer=window.setTimeout(function(){
      for(var i=0;i<aLi.length;i++){
       aLi[i].className="";
       aDiv[i].className="hide";
      }
      that.className="active";//之所以不能在这直接引用this是因为setTimeout是window对象,用this的话会指向定时器,所以要在前面定义一个变量
      aDiv[that.id].className="show";
     },500);
    }
   }
  }
 </script>
</head>
<body>
<div id="tab-list">
 <ul id="ul1">
  <li class="active">房产</li><li>家居</li><li>二手房</li>
 </ul>
 <div>
  <ul>
   <li><a href="javascript:;">275万购昌平邻铁三居 总价20万买一居</a></li>
   <li><a href="javascript:;">200万内购五环三居 140万安家东三环</a></li>
   <li><a href="javascript:;">北京首现零首付楼盘 53万购东5环50平</a></li>
   <li><a href="javascript:;">京楼盘直降5000 中信府 公园楼王现房</a></li>
  </ul>
 </div>
 <div class="hide">
  <ul>
   <li><a href="javascript:;">40平出租屋大改造 美少女的混搭小窝</a></li>
   <li><a href="javascript:;">经典清新简欧爱家 90平老房焕发新生</a></li>
   <li><a href="javascript:;">新中式的酷色温情 66平撞色活泼家居</a></li>
   <li><a href="javascript:;">瓷砖就像选好老婆 卫生间烟道的设计</a></li>
  </ul>
 </div>
 <div class="hide">
  <ul>
   <li><a href="javascript:;">通州豪华3居260万 二环稀缺2居250w甩</a></li>
   <li><a href="javascript:;">西3环通透2居290万 130万2居限量抢购</a></li>
   <li><a href="javascript:;">黄城根小学学区仅260万 121平70万抛!</a></li>
   <li><a href="javascript:;">独家别墅280万 苏州桥2居优惠价248万</a></li>
  </ul>
 </div>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
js实现固定显示区域内自动缩放图片的方法
Jul 18 Javascript
javascript中对变量类型的判断方法
Aug 09 Javascript
js全选按钮的实现方法
Nov 17 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
Nov 26 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
vue.js表格分页示例
Oct 18 Javascript
JS中的多态实例详解
Oct 15 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 #Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 #Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 #Javascript
js实现倒计时效果(小于10补零)
Mar 08 #Javascript
详解Vue监听数据变化原理
Mar 08 #Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 #Javascript
You might like
在PHP中使用XML
2006/10/09 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
js选项卡的制作方法
2017/01/23 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
linux面试题参考答案(7)
2012/10/29 面试题
技校毕业生个人学习的自我评价
2014/02/21 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
nginx共享内存的机制详解
2022/03/21 Servers
python套接字socket通信
2022/04/01 Python
使用refresh_token实现无感刷新页面
2022/04/26 Javascript