Maison > Article > interface Web > Javascript implémente l'effet de changement d'onglet
Il existe de nombreux effets de page différents sur la page actuelle. Les effets couramment utilisés incluent l'effet de calque contextuel, l'effet de défilement transparent et l'effet de changement d'onglet. Aujourd'hui, j'aimerais partager un effet de changement d'onglet écrit par moi-même en utilisant du javascript natif. En raison de mes compétences limitées, veuillez signaler tout problème.
Le rendu est le suivant :
code html :
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>js-tabs</title> <link rel="stylesheet" type="text/css" href="css/base.css" media="all"/> <style type="text/css"> a{color:#a0b3d6;} .tabs{border:1px solid #a0b3d6;margin:100px;width:300px;} .tabs-nav a{background:#eaf0fd;line-height:30px;padding:0 20px;display:inline-block;border-right:1px solid #a0b3d6;border-bottom:1px solid #a0b3d6;float:left;} .tabs-nav .on{background:white;border-bottom:1px solid white;_position:relative;} .tabs-content{padding:20px;border-top:1px solid #a0b3d6;margin-top:-1px;} </style> </head> <body> <p id="tabs"> <h2 class="tabs-nav clearfix"> <a href="javascript:;">首页</a> <a href="javascript:;">技术</a> <a href="javascript:;">生活</a> <a href="javascript:;">作品</a> </h2> <p>首页首页首页首页首页首页首页首页首页首页</p> <p class="tabs-content hide">技术技术技术技术技术技术技术技术技术技术</p> <p class="tabs-content hide">生活生活生活生活生活生活生活生活生活生活</p> <p class="tabs-content hide">作品作品作品作品作品作品作品作品作品作品</p> </p> <br/><br/> <p id="tabs2"> <h2 class="tabs-nav clearfix"> <a href="javascript:;">11111</a> <a href="javascript:;">22222</a> <a href="javascript:;">33333</a> </h2> <p>11111111111111111111111111111111111</p> <p class="tabs-content hide">222222222222222222222222222222222222</p> <p class="tabs-content hide">333333333333333333333333333333333333333</p> </p> </body> </html> <script type="text/javascript" src="tabs.js"></script> <script type="text/javascript"> window.onload = function(){ tabs('tabs','click'); tabs('tabs2','mouseover'); } </script>
code javascript :
function tabs(id,trigger){ var tabsBtn = document.getElementById(id).getElementsByTagName('h2')[0].getElementsByTagName('a'); var tabsContent = document.getElementById(id).getElementsByTagName('p'); for(var i = 0,len = tabsBtn.length; i < len; i++){ tabsBtn[i].index = i; if(trigger == 'click'){ tabsBtn[i].onclick = function(){ clearClass(); this.className = 'on'; showContent(this.index); } }else if(trigger == 'mouseover'){ tabsBtn[i].onmouseover = function(){ clearClass(); this.className = 'on'; showContent(this.index); } } } function showContent(n){ for(var i = 0,len = tabsBtn.length; i < len; i++){ tabsContent[i].className = 'hide'; } tabsContent[n].className = 'tabs-content'; } function clearClass(){ for(var i = 0,len = tabsBtn.length; i < len; i++){ tabsBtn[i].className = ''; } } }
Remarque :
1. Les titres tels que page d'accueil, technologie, vie et œuvres sont dans les balises h2.
2. Utilisez la classe nommée on pour afficher le titre actuel. Si vous la remplacez par une autre classe telle que sélectionnée, vous devez modifier le contenu correspondant dans tabs.js.
3. Le contenu correspondant au titre est dans la balise p. Il ne peut plus y avoir de balises p dans les balises p.
PS : Voici quelques effets que j'ai écrits à volonté sur la base des connaissances javascript que j'ai acquises lorsque je m'ennuyais.
Pour plus d'articles liés à l'implémentation javascript de l'effet de changement d'onglets, veuillez faire attention au site Web PHP chinois !
Articles connexes :
Programme WeChat Mini : Exemple de mise en œuvre de l'effet d'onglets
Implémentation de l'effet d'onglets dans le programme WeChat Mini