jQuery制作網(wǎng)頁版選項卡
網(wǎng)頁選項卡可以較好的利用有限的頁面來展示更多的元素,而使用JQuery來制作網(wǎng)頁選項卡也是一件非常簡單的事情。今天就來分享一個網(wǎng)頁選項卡的制作小技巧。
◦引入所需庫
◦選項卡原理
◦業(yè)務核心
◦完整小例子
引入所需庫
這個知識點很基礎(chǔ),但是為了照顧fresh man ,我還是寫一下吧。
選項卡原理
選項卡出現(xiàn)其實只是某一個div獲取到了顯示的權(quán)限,其他的沒有顯示而已。
•網(wǎng)頁代碼
<div class="tab"> <div class="tab_menu"> <ul> <li class="selected">選項卡1</li> <li>選項卡2</li> <li>選項卡3</li> </ul> </div><br><br><br> <div class="tab_box"> <div>選項卡1:這里是1號內(nèi)容區(qū)域</div> <div class="hide">選項卡2:這里是2號內(nèi)容區(qū)域</div> <div class="hide">選項卡3:這里是3號內(nèi)容區(qū)域</div> </div> </div>
•添加點樣式元素
<style> // 使得UL中的li標簽水平排列 ul { display:inline; white-space: nowrap; } li { margin:3px; float:left; background:red; // 這樣可以防止li標簽出現(xiàn)換行的顯示 display:inline-block; } .tab_menu { list-style:none; /* 去掉ul前面的符號 */ margin: 0px; /* 與外界元素的距離為0 */ padding: 0px; /* 與內(nèi)部元素的距離為0 */ width: auto; /* 寬度根據(jù)元素內(nèi)容調(diào)整 */ } .tab_box { background-color: #465c71; /* 背景色 */ border: 1px #4e667d solid; /* 邊框 */ color: #dde4ec; /* 文字顏色 */ display: block; /* 此元素將顯示為塊級元素,此元素前后會帶有換行符 */ line-height: 1.35em; /* 行高 */ padding: 4px 20px; /* 內(nèi)部填充的距離 */ text-decoration: none; /* 不顯示超鏈接下劃線 */ white-space: nowrap; /* 對于文本內(nèi)的空白處,不會換行,文本會在在同一行上繼續(xù),直到遇到 <br> 標簽為止。 */ } .selected { background-color: green; display: block; } .hide { display: none; } </style>
•JQuery控制
<script> // 加上鼠標的點擊效果 $(function(){ $("ul li").click(function(){ $(this).addClass("selected").siblings().removeClass("selected"); var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); }) }) // 加上鼠標懸浮效果 $(function(){ $("div.tab_menu ul li").hover(function(){ $(this).addClass("selected").show(); // 下面的這個可以實現(xiàn)選項卡的聯(lián)動效果 var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); },function(){ $(this).removeClass("selected").show(); // 下面的這個可以實現(xiàn)選項卡的聯(lián)動效果 var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); }) }) </script>
業(yè)務核心
里面最關(guān)鍵的其實還是最為基礎(chǔ)的JQuery選擇器的使用,然后我們就可以動態(tài)的改變頁面上的元素,從而實現(xiàn)我們想要的效果。這也是JQuery的強大之處。
這里比較有技巧性的就是通過對ul li樣式的變換,實現(xiàn)了類似于導航欄的效果。我們可以借鑒到今后的開發(fā)之中。這是一個非常實用的小技巧。
// 使得UL中的li標簽水平排列 ul { display:inline; white-space: nowrap; } li { margin:3px; float:left; background:red; display:inline-block; }
完整小例子
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tab Host Demo</title> <script type="text/javascript" src="jquery-2.2.4.min.js"></script> <style> // 使得UL中的li標簽水平排列 ul { display:inline; white-space: nowrap; } li { margin:3px; float:left; background:red; display:inline-block; } .tab_menu { list-style:none; /* 去掉ul前面的符號 */ margin: 0px; /* 與外界元素的距離為0 */ padding: 0px; /* 與內(nèi)部元素的距離為0 */ width: auto; /* 寬度根據(jù)元素內(nèi)容調(diào)整 */ } .tab_box { background-color: #465c71; /* 背景色 */ border: 1px #4e667d solid; /* 邊框 */ color: #dde4ec; /* 文字顏色 */ display: block; /* 此元素將顯示為塊級元素,此元素前后會帶有換行符 */ line-height: 1.35em; /* 行高 */ padding: 4px 20px; /* 內(nèi)部填充的距離 */ text-decoration: none; /* 不顯示超鏈接下劃線 */ white-space: nowrap; /* 對于文本內(nèi)的空白處,不會換行,文本會在在同一行上繼續(xù),直到遇到 <br> 標簽為止。 */ } .selected { background-color: green; display: block; } .hide { display: none; } </style> </head> <body> <div class="tab"> <div class="tab_menu"> <ul> <li class="selected">選項卡1</li> <li>選項卡2</li> <li>選項卡3</li> </ul> </div><br><br><br> <div class="tab_box"> <div>選項卡1:這里是1號內(nèi)容區(qū)域</div> <div class="hide">選項卡2:這里是2號內(nèi)容區(qū)域</div> <div class="hide">選項卡3:這里是3號內(nèi)容區(qū)域</div> </div> </div> <script> // 加上鼠標的點擊效果 $(function(){ $("ul li").click(function(){ $(this).addClass("selected").siblings().removeClass("selected"); var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); }) }) // 加上鼠標懸浮效果 $(function(){ $("div.tab_menu ul li").hover(function(){ $(this).addClass("selected").show(); // 下面的這個可以實現(xiàn)選項卡的聯(lián)動效果 var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); },function(){ $(this).removeClass("selected").show(); // 下面的這個可以實現(xiàn)選項卡的聯(lián)動效果 var index = $("ul li").index(this); $("div.tab_box > div").eq(index).show().siblings().hide(); }) }) </script> </body> </html>
實現(xiàn)的效果如下:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
修復jQuery tablesorter無法正確排序的bug(加千分位數(shù)字后)
這篇文章主要介紹了如何修復jQuery tablesorter無法正確排序的bug(加千分位數(shù)字后)的相關(guān)資料,需要的朋友可以參考下2016-03-03jQuery+ThinkPHP+Ajax實現(xiàn)即時消息提醒功能實例代碼
這篇文章主要介紹了jQuery+ThinkPHP+Ajax實現(xiàn)即時消息提醒功能的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-03-03使用ajaxfileupload.js實現(xiàn)上傳文件功能
這篇文章主要為大家詳細介紹了使用ajaxfileupload.js實現(xiàn)上傳文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08jQuery不使用插件及swf實現(xiàn)無刷新文件上傳
這篇文章主要介紹了jQuery不使用插件及swf實現(xiàn)無刷新文件上傳,需要的朋友可以參考下2014-12-12jQuery去掉字符串起始和結(jié)尾的空格(多種方法實現(xiàn))
去掉字符串起始和結(jié)尾的空格在實際應用中時很常見的的功能,本教程以多種方法為大家介紹下去掉空格的方法,感興趣的朋友可以參考下哈2013-04-04