[前端] js实现列表循环滚动

2800 0
王子 2022-10-21 15:59:08 | 显示全部楼层 |阅读模式
本文实例为大家分享了js实现列表循环滚动的具体代码,供大家参考,具体内容如下
先介绍几个属性
    clientHeight 元素的高度clientTop 元素顶部边框的宽度scrollTop 滚动条遮挡的部分的高度(包含border)scrollHeight 整个内容的高度(包含border)offsetTop 距离上一个 position 不为 static(默认) 的元素的顶部内边框的距离
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8" />
  5.   <title>列表循环滚动</title>
  6. </head>
  7. <style>
  8.   html,
  9.   body {
  10.     height: 100%;
  11.     width: 100%;
  12.     overflow: hidden;
  13.     background-color: #999;
  14.   }
  15.   .parent {
  16.     width: 728px;
  17.     margin: 200px auto;
  18.     height: 200px;
  19.     overflow: hidden;
  20.     background-color: #fff;
  21.   }
  22. </style>
  23. <body>
  24.   <div id="parent" class="parent">
  25.     <table border="1" cellpadding="18" cellspacing="0" id="child" class="child">
  26.     </table>
  27.     <div id="cloneChild" class="child"></div>
  28.   </div>
  29.   <script type="text/javascript">
  30.     let parent = document.getElementById('parent');
  31.     let child = document.getElementById('child');
  32.     let str = '';
  33.     for (let i = 0; i < 10; i++) {
  34.       str += `<tr>`;
  35.       for (let j = 0; j < 6; j++) {
  36.         str += `<td>第${i}行第${j}列</td>`;
  37.       }
  38.       str += `</tr>`
  39.     }
  40.     child.innerHTML = str;
  41.     let cloneChild = document.getElementById('cloneChild');
  42.     // 深度克隆一份表格 相比 innerHTML 的优势在于可以克隆元素的全部的属性
  43.     let cloneNoe = child.cloneNode(true);
  44.     // 追加到 parent 里面 做无缝切换视觉效果
  45.     parent.appendChild(cloneNoe);
  46.     (function () {
  47.       setInterval(function () {
  48.         // parent.scrollTop + parent.clientHeight = child.scrollHeight;
  49.         // child.scrollHeight - parent.scrollTop = parent.clientHeight;
  50.         // 让他多滚动 parent 一显示区域的高度。再跳到 最顶部 ,正好 给人一种在不断滚动的错觉
  51.         if (parent.scrollTop >= child.scrollHeight) {
  52.           parent.scrollTop = 0;
  53.         } else {
  54.           parent.scrollTop++;
  55.         }
  56.       }, 20);
  57.     })()
  58.   </script>
  59. </body>
  60. </html>
复制代码


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行