国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

結構/表現/行為完全分離的選項卡(jquery版和原生JS版)

2019-11-21 00:17:51
字體:
來源:轉載
供稿:網友
關于思路,和常規選項卡思路一樣.點擊選項菜單,突出顯示,并顯示對應的選項.本文實例中主要是通過判斷點擊菜單在菜單列表中的索引位置來顯示或隱藏選項區.原生js還有很多種實現方法(藍色理想中搜索),為了與jQ版思路保持一致,本文實例用的是循環判斷. 詳見注釋.
另有幾點說明:
1. 通過本文DEMO演示,可以很明顯的看到原生JS的window.onload=function(){…}與jQuery的$(document).ready(function(){…});的區別,這也是我為什么不用樣式定義初始狀態下隱藏第二三個顯示區的原因;
2. 本文只是選項卡一個原型實現,若要用于同一頁面多個選項卡,變量已集中到函數頭部,可自行封裝成函數;
3. 請不要問如何實現更酷很炫的效果,請自已思考添加效果;
4. 不希望大家用這個效果時只是機械的復制粘貼,思考加實踐,然后消化成自己的.
查看演示:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

核心代碼:
復制代碼 代碼如下:

//jQ版本
$(function(){
var _tab=$('ul.tabnav>li');//獲取選項卡導航
var _box=$('.tabbox div');//獲取內容切換區
var _hover='hover';//當前點擊顯示的樣式
var _index;//索引值
_tab.eq(0).addClass(_hover);//第一個導航高亮顯示
_tab.click(function(){
_index=_tab.index(this);//獲取當前點擊的索引值
$(this).addClass(_hover).siblings().removeClass(_hover);//當前點擊高亮顯示
_box.eq(_index).show().siblings().hide();//通過索引值讓對應的選項內容區顯示
}).eq(0).click();
});

//原生JS版本
復制代碼 代碼如下:

window.onload=function(){
var tabnav=document.getElementById('tabnav');
var list=tabnav.getElementsByTagName('li');
var tabbox=document.getElementById('tabbox');
var divs=tabbox.getElementsByTagName('div');
var hover='hover';//當前點擊顯示的樣式
var indexValue=function(self,obj){//獲取索引值的函數,通過它獲取當前點擊在導航中的索引位置
for(var i=0;i<obj.length;i++){
if(obj[i]==self) return i;
}
};
var index;
list[0].className=hover;//第一個默認高亮,建議在頁面中直接定義
for(var k=1;k<divs.length;k++){//我為了省事,用一個for循環定義默認顯示第一個切換區塊,其他隱藏.這個最好用CSS定義,能避免頁面加載時它全部顯示出來.
divs[k].style.display='none';
}
for(var l=0;l<list.length;l++){//點擊事件
list[l].onclick=function(){
index=indexValue(this,list);//利用前面定義的indexValue函數取當前點擊在選項導航中的索引值,
for(var m=0;m<list.length;m++){
list[m].className= (m==index) ? hover : '';//高亮顯示點擊項并移除其他項高亮
}
for(var n=0;n<divs.length;n++){
divs[n].style.display= (n==index) ? 'block' : 'none';//顯示點擊對應的選項區,隱藏其他
}
}
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高清| 鄂伦春自治旗| 凤庆县| 万载县| 赤城县| 龙里县| 福泉市| 泗洪县| 巴林右旗| 海阳市| 青铜峡市| 信阳市| 茂名市| 南皮县| 萨迦县| 宜君县| 金平| 三穗县| 瑞昌市| 建瓯市| 德州市| 陈巴尔虎旗| 仁寿县| 休宁县| 柘城县| 同江市| 宜州市| 景德镇市| 淳化县| 新蔡县| 武冈市| 绥德县| 龙川县| 神农架林区| 汽车| 南乐县| 合川市| 巴马| 舒兰市| 九江市| 满洲里市|