JS實(shí)現(xiàn)標(biāo)簽頁效果(配合css)
實(shí)現(xiàn)的效果:
如上圖所示為制作的標(biāo)簽頁,我們想要實(shí)現(xiàn)的效果是當(dāng)鼠標(biāo)移到某一個(gè)標(biāo)簽的時(shí)候,在下面的內(nèi)容區(qū)顯示對(duì)應(yīng)的內(nèi)容,并且相應(yīng)標(biāo)簽的顏色需要改變,如圖中所示當(dāng)前鼠標(biāo)的位置在“標(biāo)簽1”上,則內(nèi)容區(qū)域顯示的內(nèi)容為“我是內(nèi)容1”,并且“標(biāo)簽1”的顏色要比“標(biāo)簽2”和“標(biāo)簽3”深一些,同樣鼠標(biāo)移到“標(biāo)簽2”和“標(biāo)簽3”的時(shí)候顯示“我是內(nèi)容2”和“我是內(nèi)容3”。這樣的效果是CSS和JS配合實(shí)現(xiàn)的。下面我們就來看看具體代碼:
首先來看HTML代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>標(biāo)簽頁效果</title>
<link href="../CSS/tab.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/javascript" src="../JS文件/jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="../JS文件/tab.js"></script>
</head>
<body>
<ul id="tabfirst">
<li class="tabin">標(biāo)簽1</li>
<li>標(biāo)簽2</li>
<li>標(biāo)簽3</li>
</ul>
<div id="contentnow" class="contentfirst contentin">我是內(nèi)容1</div>
<div id="contentnow" class="contentfirst">我是內(nèi)容2</div>
<div id="contentnow" class="contentfirst">我是內(nèi)容3</div>
</body>
</html>
JS代碼實(shí)現(xiàn)思路很簡單,首先給每個(gè)標(biāo)簽項(xiàng)注冊一個(gè)mouseover函數(shù),當(dāng)鼠標(biāo)移到任何一個(gè)標(biāo)簽上的時(shí)候都會(huì)執(zhí)行moveover函數(shù)體內(nèi)的代碼。函數(shù)體代碼首先獲取當(dāng)前節(jié)點(diǎn),將原來顯示的內(nèi)容進(jìn)行隱藏,然后根據(jù)傳入的節(jié)點(diǎn)index把對(duì)應(yīng)于相應(yīng)標(biāo)簽下的內(nèi)容顯示出來。在代碼中我們可以看到除了對(duì)HTML中節(jié)點(diǎn)樣式進(jìn)行改動(dòng)外還使用了setTimeout函數(shù),該函數(shù)的作用是延遲函數(shù)的執(zhí)行時(shí)間,下面代碼中的延遲時(shí)間為300毫秒,也就是當(dāng)鼠標(biāo)移到標(biāo)簽后并不是立即執(zhí)行而是延遲300毫秒后在執(zhí)行,如果在300毫秒時(shí)間內(nèi)鼠標(biāo)移出標(biāo)簽區(qū)域則不再執(zhí)行該代碼。
$(document).ready(function(){
var timeoutid;
$("#tabfirst li").each(function(index){
//每一個(gè)包裝的li的JQuery對(duì)象都會(huì)執(zhí)行function中的代碼
//index是當(dāng)前執(zhí)行這個(gè)function代碼的li對(duì)應(yīng)在所有l(wèi)i組成的數(shù)組中的索引值
//有了index的值后,就可以找到當(dāng)前標(biāo)簽對(duì)應(yīng)的內(nèi)容區(qū)域
$(this).mouseover(function(){
var liNode = $(this);
timeoutid = setTimeout(function(){
//將原來顯示的內(nèi)容進(jìn)行隱藏
$("div.contentin").removeClass("contentin");
//將原來有tabin屬性的標(biāo)簽去掉tabin屬性
$("#tabfirst li.tabin").removeClass("tabin");
//將當(dāng)前標(biāo)簽對(duì)應(yīng)的內(nèi)容區(qū)域顯示出來
$("div.contentfirst").eq(index).addClass("contentin");
//$("div.contentfirst:eq(" + index + ")").addClass("contentin");
//將當(dāng)前標(biāo)簽增加tabin屬性
liNode.addClass("tabin");
},300);
}).mouseout(function(){
clearTimeout(timeoutid);
});
});
});
相關(guān)文章
使用js實(shí)現(xiàn)按鈕控制文本框加1減1應(yīng)用于小時(shí)+分鐘
正如標(biāo)題所言使用js實(shí)現(xiàn)按鈕控制文本框加1減1,此類主要應(yīng)用于小時(shí)+分鐘,下面有個(gè)不錯(cuò)的示例,喜歡的朋友可以參考下2013-12-12JavaScript格式化日期時(shí)間的方法和自定義格式化函數(shù)示例
JavaScript默認(rèn)的時(shí)間格式我們一般情況下不會(huì)用,所以需要進(jìn)行格式化,下面說說我總結(jié)的JavaScript時(shí)間格式化方法2014-04-04JavaScript 判斷一個(gè)對(duì)象{}是否為空對(duì)象的簡單方法
下面小編就為大家?guī)硪黄狫avaScript 判斷一個(gè)對(duì)象{}是否為空對(duì)象的簡單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10Javascript實(shí)現(xiàn)倒計(jì)時(shí)(防頁面刷新)實(shí)例
本文分享了Javascript實(shí)現(xiàn)倒計(jì)時(shí)并且頁面不刷新的實(shí)例,具有很好的參考價(jià)值,需要的朋友一起來看下吧2016-12-12微信小程序使用canvas自適應(yīng)屏幕畫海報(bào)并保存圖片功能
這篇文章主要介紹了小程序使用canvas自適應(yīng)屏幕畫海報(bào)并保存圖片功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07