博客列表 >tab切换

tab切换

不露声色
不露声色原创
2021年04月22日 21:27:07943浏览

自己手写了一个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. .tabcontent ul {display: none;}
  10. .ulitem.active{display: block;}
  11. </style>
  12. </head>
  13. <body>
  14. <div class="tabs">
  15. <ul class="list">
  16. <li class="item active" data-index="1">tab1</li>
  17. <li class="item" data-index="2">tab2</li>
  18. <li class="item" data-index="3">tab3</li>
  19. </ul>
  20. </div>
  21. <div class="tabcontent">
  22. <ul class="tabc1 ulitem active" data-index="1">
  23. <li>aaaa</li>
  24. <li>aaaa</li>
  25. <li>aaaa</li>
  26. </ul>
  27. <ul class="tabc2 ulitem" data-index="2">
  28. <li>bbbb</li>
  29. <li>bbbb</li>
  30. <li>bbbb</li>
  31. </ul>
  32. <ul class="tab3 ulitem" data-index="3">
  33. <li>cccc</li>
  34. <li>cccc</li>
  35. <li>cccc</li>
  36. </ul>
  37. </div>
  38. <script>
  39. //事件代理
  40. const tabul = document.querySelector(".list");
  41. const tabtul = document.querySelectorAll(".ulitem");
  42. tabul.addEventListener("click",(ev)=>{
  43. [...tabul.children].forEach((ev)=>{
  44. ev.classList.remove("active");
  45. })
  46. ev.target.classList.add("active");
  47. tabtul.forEach((evv)=>{
  48. if(ev.target.dataset.index === evv.dataset.index){
  49. evv.classList.add("active");
  50. }else{
  51. evv.classList.remove("active");
  52. return false;
  53. }
  54. })
  55. })
  56. </script>
  57. </body>
  58. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议