当前位置:   article > 正文

tab栏切换中的懒加载实现方式_如何实现tab页签的懒加载

如何实现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>Tab栏切换懒加载</title>
  8. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script>
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. }
  14. .tabs {
  15. display: flex;
  16. }
  17. .tabs li {
  18. width: 100px;
  19. height: 50px;
  20. text-decoration: none;
  21. list-style-type: none;
  22. border: 1px solid #ccc;
  23. margin-left: 10px;
  24. }
  25. .tabs-box {
  26. width: 330px;
  27. background-color: burlywood;
  28. height: 100px;
  29. display: none;
  30. }
  31. .active {
  32. background-color: steelblue;
  33. color: #fff;
  34. }
  35. .boxOne {
  36. display: block;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <ul class="tabs">
  42. <li class="active">1</li>
  43. <li>2</li>
  44. <li>3</li>
  45. </ul>
  46. <div class="boxs">
  47. <div class="tabs-box boxOne" data-attrval="diyi">1</div>
  48. <div class="tabs-box" data-attrval="dier">2</div>
  49. <div class="tabs-box" data-attrval="disan">3</div>
  50. </div>
  51. </body>
  52. </html>
  1. // tab 栏切换
  2. $('.tabs li').on('click', function () {
  3. $(this).addClass('active').siblings().removeClass('active')
  4. $(this)
  5. .parent()
  6. .next()
  7. .children()
  8. .eq($(this).index())
  9. .css('display', 'block')
  10. .siblings()
  11. .css('display', 'none')
  12. })
  13. // 懒加载
  14. if (window?.IntersectionObserver) {
  15. let items = [...document.getElementsByClassName('tabs-box')]
  16. let io = new IntersectionObserver(
  17. (entries) => {
  18. entries.forEach((item) => {
  19. // intersectionRatio === 1说明该元素完全暴露出来
  20. if (item.intersectionRatio) {
  21. item.target.style.backgroundColor = 'yellow'
  22. // 对应div内的代码
  23. if (item.target.dataset.attrval === 'diyi') {
  24. // 简单的js代码
  25. item.target.innerHTML = 'diyi'
  26. } else if (item.target.dataset.attrval === 'dier') {
  27. item.target.innerHTML = 'dier'
  28. } else if (item.target.dataset.attrval === 'disan') {
  29. item.target.innerHTML = 'disan'
  30. }
  31. }
  32. })
  33. },
  34. {
  35. root: null,
  36. rootMargin: '0px 0px',
  37. threshold: 0.1 // 阀值设为1,当只有比例达到1时才触发回调函数
  38. }
  39. )
  40. items.forEach((item) => io.observe(item))
  41. }

 各位有更好的方法可以指出

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

闽ICP备14008679号