当前位置:   article > 正文

js实现tab栏切换_js 人物tab栏切换

js 人物tab栏切换

实现思路: 
(1)整个tab栏是由2个div模块组成,分别是头部选项栏和中间内容模块(蓝色框)。

(2)头部选项栏点击其中任意一个,当前点击的一栏底色及字体颜色发生改变,其余不变。用排他思想实现。

(3)用for循环为头部选项栏所有元素绑定点击事件。

(4)中间的内容模块会跟随选项栏变化,因此显示隐藏的模块要放在点击事件的里边。且要满足:中间模块显示的内容要和上面的选项栏一一对应。

(5)最终达到的效果为:当我们点击头部选项栏,中间内容模块会显示对应的图片,其余的图片则会隐藏(排他思想)。

需要注意的点:1、我们一开始是将中间内容模块隐藏,此时需要在中间内容模块中添加一个展示类,使得中间模块在默认状态下内容不为空。2、由于我们采用了document.querySelectorAll()来获取元素,因此获取到的头部选项栏和中间内容模块的所有元素,类型是下标为0开始的列表,由此来实现一一对应匹配。

代码示例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>tab栏切换</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. li {
  14. list-style: none;
  15. }
  16. .box {
  17. width: 600px;
  18. margin: 100px auto;
  19. }
  20. .box-top {
  21. overflow: hidden;
  22. width: 400px;
  23. background-color: whitesmoke;
  24. }
  25. .box-top ul li {
  26. float: left;
  27. width: 100px;
  28. height: 30px;
  29. line-height: 30px;
  30. text-align: center;
  31. }
  32. .tab li.active {
  33. background-color: #ccc;
  34. color:peru;
  35. }
  36. .box-middle {
  37. margin-top: 0;
  38. }
  39. .box-middle .item {
  40. display: none;
  41. float: left;
  42. }
  43. .box-middle .item.active {
  44. display: block;
  45. }
  46. </style>
  47. </head>
  48. <body>
  49. <div class="box">
  50. <div class="box-top">
  51. <ul class="tab">
  52. <li class="tab-item active">第一张</li>
  53. <li class="tab-item">第二张</li>
  54. <li class="tab-item">第三张</li>
  55. <li class="tab-item">第四张</li>
  56. </ul>
  57. </div>
  58. <div class="box-middle">
  59. <div class="item active"> //默认展示页面
  60. <a href="###"><img src="./image/1.jpg" alt=""></a>
  61. </div>
  62. <div class="item">
  63. <a href="###"><img src="./image/2.jpg" alt=""></a>
  64. </div>
  65. <div class="item">
  66. <a href="###"><img src="./image/3.jpg" alt=""></a>
  67. </div>
  68. <div class="item">
  69. <a href="###"><img src="./image/4.jpg" alt=""></a>
  70. </div>
  71. </div>
  72. </div>
  73. <script>
  74. // 1、获取相应的元素
  75. let list = document.querySelectorAll('.tab .tab-item')
  76. let items = document.querySelectorAll('.box-middle .item')
  77. // 2、用for循环为tab栏所有元素添加点击事件 头部tab栏切换模块(排他思想)
  78. for (let i = 0; i < list.length; i++){
  79. list[i].addEventListener('click',function(){
  80. document.querySelector('.tab .active').classList.remove('active')
  81. this.classList.add('active')
  82. // 3、底部显示隐藏模块 要放在点击事件的里边
  83. // 3.1、先移除
  84. document.querySelector('.box-middle .active').classList.remove('active')
  85. // 3.2 点击哪个按钮就显示对应的底部模块
  86. items[i].classList.add('active') // 中间模块展示图片和上面的选项栏一一对应
  87. })
  88. }
  89. </script>
  90. </body>
  91. </html>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/69407
推荐阅读
相关标签
  

闽ICP备14008679号