本文实例为大家分享了js实现tab栏切换制作的具体代码,供大家参考,具体内容如下
效果:
思想:
1.点击每个tab时。要先用排他思想,使得所有li不加上背景,再让点击的tab加上某个类。
2.上面的tab与下面显示内容的页面是一一对应的。因此,可以使用自定义属性,使tab加上一个index索引,这样就能知道每次点击的是哪一个tab了。
3.最后仍然使用排他思想,当点击tab时,先让所有的内容都不显示,再让对应的内容进行显示。
代码:
<!DOCTYPE html> <html lang="en"> <head> ? ? <meta charset="UTF-8"> ? ? <meta http-equiv="X-UA-Compatible" content="IE=edge"> ? ? <meta name="viewport" content="width=device-width, initial-scale=1.0"> ? ? <title>tab切换栏的制作</title> ? ? <style> ? ? ? ? ? *{ ? ? ? ? ? ? padding: 0; ? ? ? ? ? ? margin: 0; ? ? ? ? } ? ? ? ? .head{ ? ? ? ? ? ? width: 1000px; ? ? ? ? ? ? height: 30px; ? ? ? ? ? ? background-color: pink; ? ? ? ? ? ? margin: 10px auto; ? ? ? ? ? ?? ? ? ? ? } ? ? ? ? ul{ ? ? ? ? ? ? width: 100%; ? ? ? ? ? ? height: 100%; ? ? ? ? } ? ? ? ? li { ? ? ? ? ? ? display: inline-block; ? ? ? ? ? ? width: 100px; ? ? ? ? ? ? height: 100%; ? ? ? ? ? ? list-style: none; ? ? ? ? ? ? line-height: 30px; ? ? ? ? ? ? text-align: center; ? ? ? ? ? ? cursor: pointer; ? ? ? ? } ? ? ? ? .bg { ? ? ? ? ? ? color: white; ? ? ? ? ? ? background-color: red; ? ? ? ? } ? ? ? ? .item { ? ? ? ? ? ? display: none; ? ? ? ? } ? ? </style> </head> <body> ? ? <div class="head"> ? ? ? ? <ul> ? ? ? ? ? ? <li>商品详情</li> ? ? ? ? ? ? <li>商品详情</li> ? ? ? ? ? ? <li>商品详情</li> ? ? ? ? ? ? <li>商品详情</li> ? ? ? ? ? ? <li>商品详情5</li> ? ? ? ? </ul> ? ? ? ? <div class="detail"> ? ? ? ? ? ? <div class="item">item1</div> ? ? ? ? ? ? <div class="item">item2</div> ? ? ? ? ? ? <div class="item">item3</div> ? ? ? ? ? ? <div class="item">item4</div> ? ? ? ? ? ? <div class="item">item5</div> ? ? ? ? </div> ? ? ? ? <script> ? ? ? ? ? ? var lis = document.querySelectorAll('li'); ? ? ? ? ? ? // 鼠标经过时,li加入className,同时让其他li去掉该类。 ? ? ? ? ? ? // 绑定事件 ? ? ? ? ? ? var detail = document.querySelector('.detail'); ? ? ? ? ? ? var items = detail.querySelectorAll('.item'); ? ? ? ? ? ? for(var i=0;i<lis.length;i++){ ? ? ? ? ? ? ? ? lis[i].setAttribute('index',i); ? ? ? ? ? ? ? ? var index; ? ? ? ? ? ? ? ? lis[i].onclick = function(){ ? ? ? ? ? ? ? ? ? ? for(var j=0;j<lis.length;j++){ ? ? ? ? ? ? ? ? ? ? ? ? lis[j].className=''; ? ? ? ? ? ? ? ? ? ? ? ? items[j].style.display = 'none'; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? this.className='bg'; ? ? ? ? ? ? ? ? ? ? index = this.getAttribute('index'); ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? items[index].style.display='block'; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } ? ? ? ? </script> ? ? </div> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did124465