完美实现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 相关文章推荐
javascript实现 在光标处插入指定内容
May 25 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
js中Image对象以及对其预加载处理示例
Nov 20 Javascript
小米公司JavaScript面试题
Dec 29 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
JavaScript数组复制详解
Feb 02 Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
vue slots 组件的组合/分发实例
Sep 06 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 extract 将数组拆分成多个变量的函数
2010/06/30 PHP
php检查是否是ajax请求的方法
2015/04/16 PHP
php报错502badgateway解决方法
2019/10/11 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
python实现画圆功能
2018/01/25 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Python3.6简单反射操作示例
2018/06/14 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
django 模型中的计算字段实例
2020/05/19 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
Python爬虫开发与项目实战
2020/12/16 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
支行行长竞聘报告
2014/11/06 职场文书
安全温馨提示语大全
2015/07/14 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Python源码解析之List
2021/05/21 Python
sql字段解析器的实现示例
2021/06/23 SQL Server