当前位置:   article > 正文

JS 原生实现Tab栏的切换_使用原生js实现tabs标签页的功能

使用原生js实现tabs标签页的功能

最终实现效果图展示,通过点击tab栏,对内容进行切换。样式未进行美化。

 

具体思路见代码注释

  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>Document</title>
  8. <style>
  9. * {
  10. padding: 0;
  11. margin: 0;
  12. box-sizing: border-box;
  13. }
  14. body {
  15. margin: 100px;
  16. }
  17. ul {
  18. list-style: none;
  19. display: flex;
  20. width: 400px;
  21. }
  22. ul li {
  23. width: 100px;
  24. height: 40px;
  25. text-align: center;
  26. line-height: 40px;
  27. border: 1px solid red;
  28. }
  29. .active {
  30. background: green;
  31. }
  32. .content-active {
  33. display: block;
  34. border: 1px solid green;
  35. }
  36. div {
  37. width: 400px;
  38. height: 300px;
  39. display: none;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <ul>
  45. <li class="active">选项卡1</li>
  46. <li>选项卡2</li>
  47. <li>选项卡3</li>
  48. <li>选项卡4</li>
  49. </ul>
  50. <div class="content-active">内容一</div>
  51. <div>内容二</div>
  52. <div>内容三</div>
  53. <div>内容四</div>
  54. <script>
  55. // 简易tabs栏的切换
  56. let ul = document.querySelector('ul');
  57. let lis = document.querySelectorAll('li');
  58. let divs = document.querySelectorAll('div');
  59. // 为tab栏每一项都添加index属性,设置为索引
  60. for (let i = 0; i < lis.length; i++) {
  61. lis[i].setAttribute('index', i);
  62. }
  63. // 事件委托到ul上,不用循环遍历绑定点击事件,利用e.target则可以找到点击的对应的li,然后再保存该li对应的属性index的值
  64. ul.addEventListener('click', function (e) {
  65. let index = e.target.getAttribute('index');
  66. // 利用了排他思想,先将所有的都移除该类
  67. for (let i = 0; i < lis.length; i++) {
  68. lis[i].classList.remove('active');
  69. divs[i].classList.remove('content-active');
  70. }
  71. // 然后再对点击的类添加该类,就达到了效果
  72. lis[index].classList.add('active');
  73. divs[index].classList.add('content-active');
  74. });
  75. </script>
  76. </body>
  77. </html>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/69346
推荐阅读
相关标签
  

闽ICP备14008679号