完美實現(xiàn)js選項卡切換效果(二)
更新時間:2017年03月08日 17:16:49 作者:Vampire-blog
這篇文章主要為大家詳細介紹如何完美實現(xiàn)js選項卡切換效果,通過設置定時器實現(xiàn)延時0.5s切換選項卡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了js選項卡切換的具體代碼,供大家參考,具體內容如下
通過設置定時器實現(xiàn)延時0.5s切換,一個重要的技巧是定義了一個that變量來存放當前指針this。
之所以不能在這直接引用this是因為setTimeout是window對象,用this的話會指向定時器,所以要在前面定義一個變量。
還要注意調用定時器前要判斷是否存在準備執(zhí)行的定時器。
效果如圖:
具體代碼:
<!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 //如果存在準備執(zhí)行的定時器,立即清除,只能當前停留時間大于500ms時才開始執(zhí)行(指鼠標快速滑過一個的那一瞬間要清除掉產生的定時器) if(timer){ clearTimeout(timer); timer=null; } //延時半秒執(zhí)行 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萬內購五環(huán)三居 140萬安家東三環(huán)</a></li> <li><a href="javascript:;">北京首現(xiàn)零首付樓盤 53萬購東5環(huán)50平</a></li> <li><a href="javascript:;">京樓盤直降5000 中信府 公園樓王現(xiàn)房</a></li> </ul> </div> <div class="hide"> <ul> <li><a href="javascript:;">40平出租屋大改造 美少女的混搭小窩</a></li> <li><a href="javascript:;">經典清新簡歐愛家 90平老房煥發(fā)新生</a></li> <li><a href="javascript:;">新中式的酷色溫情 66平撞色活潑家居</a></li> <li><a href="javascript:;">瓷磚就像選好老婆 衛(wèi)生間煙道的設計</a></li> </ul> </div> <div class="hide"> <ul> <li><a href="javascript:;">通州豪華3居260萬 二環(huán)稀缺2居250w甩</a></li> <li><a href="javascript:;">西3環(huán)通透2居290萬 130萬2居限量搶購</a></li> <li><a href="javascript:;">黃城根小學學區(qū)僅260萬 121平70萬拋!</a></li> <li><a href="javascript:;">獨家別墅280萬 蘇州橋2居優(yōu)惠價248萬</a></li> </ul> </div> </div> </body> </html>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JS重寫Date函數(shù)以及兼容IOS系統(tǒng)
這篇文章主要介紹了JS重寫Date函數(shù)以及兼容IOS系統(tǒng),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10簡述JavaScript提交表單的方式 (Using JavaScript Submit Form)
這篇文章主要介紹了簡述JavaScript提交表單的方式 (Using JavaScript Submit Form)的相關資料,需要的朋友可以參考下2016-03-03BootStrap Validator使用注意事項(必看篇)
針對bootstrap2和bootstrap3有不同的版本,在使用bootstrap validator時需要了解其注意事項,下面小編把我遇到的注意事項分享給大家,供大家參考2016-09-09JS實現(xiàn)把一個頁面層數(shù)據(jù)傳遞到另一個頁面的兩種方式
這篇文章主要介紹了JS實現(xiàn)把一個頁面層數(shù)據(jù)傳遞到另一個頁面的方式,本文給大家提供了兩種方式,需要的朋友可以參考下2018-08-08