JavaScript實(shí)現(xiàn)點(diǎn)擊切換功能
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)點(diǎn)擊切換功能的具體代碼,供大家參考,具體內(nèi)容如下
在實(shí)際應(yīng)用中,點(diǎn)擊或者移入某一元素上,彈出下拉菜單或者頁(yè)面,是網(wǎng)頁(yè)設(shè)計(jì)的常見(jiàn)操作。
下面我們實(shí)現(xiàn)一種點(diǎn)擊菜單實(shí)現(xiàn)菜單切換,使用js提供三種方式實(shí)現(xiàn)該功能。

1.使用html設(shè)計(jì)基本結(jié)構(gòu)
<body> <h2>多Tab點(diǎn)擊切換</h2> <ul id="tab"> <li id="tab1" value="1">10元套餐</li> <li id="tab2" value="2">30元套餐</li> <li id="tab3" value="3">50元包月</li> </ul> <div id="container"> <div id="content1"> 10元套餐詳情:<br/> 每月套餐內(nèi)撥打100分鐘,超出部分2毛/分鐘 </div> <div id="content2" style="display: none"> 30元套餐詳情:<br/> 每月套餐內(nèi)撥打300分鐘,超出部分1.5毛/分鐘 </div> <div id="content3" style="display: none"> 50元包月詳情:<br/> 每月無(wú)限量隨心打 </div> </div> </body>
2.使用css設(shè)計(jì)基本樣式
<style>
* {
margin: 0;
padding: 0;
}
#tab li {
float: left;
list-style: none;
width: 80px;
height: 40px;
line-height: 40px;
cursor: pointer;
text-align: center;
}
#container {
position: relative;
}
#content1, #content2, #content3 {
width: 300px;
height: 100px;
padding: 30px;
position: absolute;
top: 40px;
left: 0;
}
#tab1, #content1 {
background-color: #ffcc00;
}
#tab2, #content2 {
background-color: #ff00cc;
}
#tab3, #content3 {
background-color: #00ccff;
}
</style>
3.js實(shí)現(xiàn)點(diǎn)擊切換功能
//原生js
var container=document.querySelectorAll('#container>div')
var event_li=document.querySelectorAll('#tab>li')
var currentindex=0
for(var i=0;i<event_li.length;i++){
event_li[i].num=i
event_li[i].onclick=function(){
container[currentindex].style.display='none'
var index_other=this.num
container[index_other].style.display='block'
currentindex=index_other
}}
//jQuery實(shí)現(xiàn),點(diǎn)擊一下父元素,子元素全部display_none,再將點(diǎn)擊事件的元素的子元素設(shè)置為display_block
var $container=$('#container>div')
$('#tab>li').click(function(){
$container.css('display', 'none')
var index=$(this).index()
var index_other=$(this).val()-1
$container[index_other].style.display = 'block'
})
//jQuery實(shí)現(xiàn),點(diǎn)擊一下父元素,最開(kāi)始的元素的子元素display_none,再將點(diǎn)擊事件的元素的子元素設(shè)置為display_block
currentindex=0
$('#tab>li').click(function(){
$($container[currentindex]).css('display', 'none')
var index=$(this).index()
$container[index].style.display = 'block'
currentindex=index
})
4.總結(jié)
(1)、原生js就可以實(shí)現(xiàn)點(diǎn)擊切換的功能,但是使用jQuery后更為容易,語(yǔ)法簡(jiǎn)單,卻功能強(qiáng)大。
(2)、在比較2和3方法,可以看到第2法在觸發(fā)點(diǎn)擊事件后是將所有子元素設(shè)置的顯示方式為none,顯然在子元素較多時(shí),此時(shí)要修改的次數(shù)也相應(yīng)的增加,勢(shì)必影響加載的性能,應(yīng)該優(yōu)化為3方法。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript實(shí)現(xiàn)的簡(jiǎn)單Tab點(diǎn)擊切換功能示例
- JavaScript 實(shí)現(xiàn) Tab 點(diǎn)擊切換實(shí)例代碼
- JS實(shí)現(xiàn)淡藍(lán)色簡(jiǎn)潔豎向Tab點(diǎn)擊切換效果
- 簡(jiǎn)單純js實(shí)現(xiàn)點(diǎn)擊切換TAB標(biāo)簽實(shí)例
- js實(shí)現(xiàn)點(diǎn)擊切換TAB標(biāo)簽實(shí)例
- Vue.js點(diǎn)擊切換按鈕改變內(nèi)容的實(shí)例講解
- JS實(shí)現(xiàn)的簡(jiǎn)單標(biāo)簽點(diǎn)擊切換功能示例
- 原生JS實(shí)現(xiàn)隱藏顯示圖片 JS實(shí)現(xiàn)點(diǎn)擊切換圖片效果
- JavaScript實(shí)現(xiàn)多個(gè)重疊層點(diǎn)擊切換效果的方法
- JavaScript實(shí)現(xiàn)Tab點(diǎn)擊切換
相關(guān)文章
JS一維數(shù)組轉(zhuǎn)化為三維數(shù)組方法
這篇文章主要給大家分享了JS一維數(shù)組轉(zhuǎn)化為三維數(shù)組的方法,下面文章圍繞JS數(shù)組轉(zhuǎn)換的相關(guān)資料展開(kāi)內(nèi)容,對(duì)大家的學(xué)習(xí)有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-01-01
詳解TypeScript2.0標(biāo)記聯(lián)合類型
這篇文章主要介紹了TypeScript2.0標(biāo)記聯(lián)合類型,對(duì)TS感興趣的同學(xué),可以參考下2021-05-05
JS實(shí)現(xiàn)的簡(jiǎn)易拖放效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)易拖放效果的方法,涉及JS事件監(jiān)聽(tīng)、擴(kuò)展及頁(yè)面元素動(dòng)態(tài)操作的相關(guān)技巧,需要的朋友可以參考下2016-12-12
JavaScript中高級(jí)語(yǔ)法??表達(dá)式用法示例詳解
這篇文章主要為大家介紹了JavaScript中高級(jí)語(yǔ)法??表達(dá)式用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
JS創(chuàng)建自定義對(duì)象的六種方法總結(jié)
這篇文章主要給大家介紹了關(guān)于JS創(chuàng)建自定義對(duì)象的六種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
前端頁(yè)面在移動(dòng)設(shè)備上顯示不正常的原因及解決方案
當(dāng)頁(yè)面在移動(dòng)設(shè)備上顯示不正常時(shí),通常是由于布局、樣式或響應(yīng)式設(shè)計(jì)設(shè)置不當(dāng)所引起的,移動(dòng)設(shè)備的屏幕尺寸、分辨率和交互方式與桌面設(shè)備有很大的不同,本文將詳細(xì)介紹常見(jiàn)的導(dǎo)致頁(yè)面在移動(dòng)設(shè)備上顯示不正常的原因,以及如何解決這些問(wèn)題,需要的朋友可以參考下2024-09-09
jscript之Read an Excel Spreadsheet
jscript之Read an Excel Spreadsheet...2007-06-06

