完美實(shí)現(xiàn)js選項(xiàng)卡切換效果(二)
本文實(shí)例為大家分享了js選項(xiàng)卡切換的具體代碼,供大家參考,具體內(nèi)容如下
通過設(shè)置定時(shí)器實(shí)現(xiàn)延時(shí)0.5s切換,一個(gè)重要的技巧是定義了一個(gè)that變量來存放當(dāng)前指針this。
之所以不能在這直接引用this是因?yàn)閟etTimeout是window對(duì)象,用this的話會(huì)指向定時(shí)器,所以要在前面定義一個(gè)變量。
還要注意調(diào)用定時(shí)器前要判斷是否存在準(zhǔn)備執(zhí)行的定時(shí)器。
效果如圖:
具體代碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>延時(shí)切換</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這個(gè)變量來引用當(dāng)前滑過的li //如果存在準(zhǔn)備執(zhí)行的定時(shí)器,立即清除,只能當(dāng)前停留時(shí)間大于500ms時(shí)才開始執(zhí)行(指鼠標(biāo)快速滑過一個(gè)的那一瞬間要清除掉產(chǎn)生的定時(shí)器) if(timer){ clearTimeout(timer); timer=null; } //延時(shí)半秒執(zhí)行 timer=window.setTimeout(function(){ for(var i=0;i<aLi.length;i++){ aLi[i].className=""; aDiv[i].className="hide"; } that.className="active";//之所以不能在這直接引用this是因?yàn)閟etTimeout是window對(duì)象,用this的話會(huì)指向定時(shí)器,所以要在前面定義一個(gè)變量 aDiv[that.id].className="show"; },500); } } } </script> </head> <body> <div id="tab-list"> <ul id="ul1"> <li class="active">房產(chǎn)</li><li>家居</li><li>二手房</li> </ul> <div> <ul> <li><a href="javascript:;">275萬購昌平鄰鐵三居 總價(jià)20萬買一居</a></li> <li><a href="javascript:;">200萬內(nèi)購五環(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:;">經(jīng)典清新簡(jiǎn)歐愛家 90平老房煥發(fā)新生</a></li> <li><a href="javascript:;">新中式的酷色溫情 66平撞色活潑家居</a></li> <li><a href="javascript:;">瓷磚就像選好老婆 衛(wèi)生間煙道的設(shè)計(jì)</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:;">黃城根小學(xué)學(xué)區(qū)僅260萬 121平70萬拋!</a></li> <li><a href="javascript:;">獨(dú)家別墅280萬 蘇州橋2居優(yōu)惠價(jià)248萬</a></li> </ul> </div> </div> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue.js tab實(shí)現(xiàn)選項(xiàng)卡切換
- 使用vue.js寫一個(gè)tab選項(xiàng)卡效果
- js鼠標(biāo)經(jīng)過tab選項(xiàng)卡時(shí)實(shí)現(xiàn)切換延遲
- Vue.js組件tab實(shí)現(xiàn)選項(xiàng)卡切換
- 原生js實(shí)現(xiàn)選項(xiàng)卡功能
- JS實(shí)現(xiàn)的tab切換選項(xiàng)卡效果示例
- JS使用面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)的tab選項(xiàng)卡效果示例
- js實(shí)現(xiàn)簡(jiǎn)單的選項(xiàng)卡效果
- js-tab選項(xiàng)卡
- js編寫選項(xiàng)卡效果
相關(guān)文章
微信小程序訪問豆瓣電影api的實(shí)現(xiàn)方法
這篇文章主要介紹了微信小程序訪問豆瓣電影api的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03JS重寫Date函數(shù)以及兼容IOS系統(tǒng)
這篇文章主要介紹了JS重寫Date函數(shù)以及兼容IOS系統(tǒng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10手動(dòng)實(shí)現(xiàn)js短信驗(yàn)證碼輸入框
本文記錄一下自己手動(dòng)實(shí)現(xiàn)的一個(gè)前端常見的短信驗(yàn)證碼輸入組件,從需求到實(shí)現(xiàn)逐步優(yōu)化的過程。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06簡(jiǎn)述JavaScript提交表單的方式 (Using JavaScript Submit Form)
這篇文章主要介紹了簡(jiǎn)述JavaScript提交表單的方式 (Using JavaScript Submit Form)的相關(guān)資料,需要的朋友可以參考下2016-03-03BootStrap Validator使用注意事項(xiàng)(必看篇)
針對(duì)bootstrap2和bootstrap3有不同的版本,在使用bootstrap validator時(shí)需要了解其注意事項(xiàng),下面小編把我遇到的注意事項(xiàng)分享給大家,供大家參考2016-09-09JS實(shí)現(xiàn)把一個(gè)頁面層數(shù)據(jù)傳遞到另一個(gè)頁面的兩種方式
這篇文章主要介紹了JS實(shí)現(xiàn)把一個(gè)頁面層數(shù)據(jù)傳遞到另一個(gè)頁面的方式,本文給大家提供了兩種方式,需要的朋友可以參考下2018-08-08