ul li数据向上无限滚动

html
<ul style="margin: 0; padding: 0" id="ul_first">
              <li
                class="totalInfo"
                v-for="(item, index) in chartDatas.monitor.data"
                :key="index"
              >
                <div class="li-item name-box">
                  <p>数据名称</p>
                  <p>{{ item.filename }}</p>
                </div>
                <div class="li-item value-box">
                  <p>接入时间</p>
                  <p class="value">{{ item.upload_time }}</p>
                </div>
              </li>
            </ul>
方法:
<script>
iniftySroll() {
      let moveup = () => {
        let parent = document.getElementById("ul_first");
        // var scollT=document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
        let boxlist = document.getElementsByClassName("totalInfo")[0];
        if (parent.scrollTop >= parent.offsetHeight * 0.33) {
          let box = document.getElementsByClassName("totalInfo")[0];
          let box1 = document.getElementsByClassName("totalInfo")[0];
          box.parentNode.removeChild(box);
          parent.appendChild(box1);
        } else {
          parent.scrollTop++;
        }
      };
      let dom = document.getElementById("ul_first");
      // var timer = (_this.chartDatas.monitor.timer = setInterval(moveup, 100));
      this.chartDatas.monitor.timer = setInterval(moveup, 100);
      dom.addEventListener("mouseover", () => {
        clearInterval(this.chartDatas.monitor.timer);
      });
      dom.addEventListener("mouseout", () => {
        clearInterval(this.chartDatas.monitor.timer);
        this.chartDatas.monitor.timer = setInterval(moveup, 100);
      });
    },
</script>

 

好的,以下是一个基本的实现思路和示例代码: 1. HTML代码中需要有一个ul元素,并在其中添加多个li元素,每个li元素代表一条滚动内容。 ```html <ul id="scroll-list"> <li>第一条滚动内容</li> <li>第二条滚动内容</li> <li>第三条滚动内容</li> <li>第四条滚动内容</li> <li>第五条滚动内容</li> <li>第六条滚动内容</li> </ul> ``` 2. CSS代码中需要设置ul元素的高度和overflow属性,使其可以出现滚动条。同时需要设置li元素的高度和行高,以及其它样式属性。 ```css #scroll-list { height: 200px; /* 设置ul元素的高度 */ overflow: hidden; /* 隐藏溢出部分 */ border: 1px solid #ccc; /* 设置边框 */ padding: 10px; /* 设置内边距 */ } #scroll-list li { height: 30px; /* 设置li元素的高度 */ line-height: 30px; /* 设置行高 */ border-bottom: 1px solid #ccc; /* 设置底部边框 */ } ``` 3. 使用JavaScript代码实现滚动效果。具体实现思路为:使用定时器循环滚动,每次将第一个li元素移到ul元素的末尾,并将滚动距离重置为0。 ```javascript function scrollList() { var ul = document.getElementById("scroll-list"); var liHeight = ul.getElementsByTagName("li")[0].offsetHeight; // 获取li元素的高度 var scrollDistance = 0; // 初始化滚动距离为0 setInterval(function() { ul.style.transition = "transform 0.5s ease"; // 添加过渡效果 scrollDistance += liHeight; // 计算滚动距离 ul.style.transform = "translateY(-" + scrollDistance + "px)"; // 应用滚动效果 // 如果滚动到了最后一个li元素,则将第一个li元素移到ul元素的末尾 if (scrollDistance >= liHeight * ul.getElementsByTagName("li").length) { ul.style.transition = ""; // 清除过渡效果 ul.style.transform = ""; // 清除滚动效果 ul.appendChild(ul.getElementsByTagName("li")[0]); scrollDistance = 0; // 重置滚动距离 } }, 2000); // 每2秒滚动一次 } ``` 4. 在页面加载后调用该函数即可实现滚动效果。 ```html <script> window.onload = function() { scrollList(); } </script> ``` 完整的示例代码如下: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>循环滚动</title> <style> #scroll-list { height: 200px; overflow: hidden; border: 1px solid #ccc; padding: 10px; } #scroll-list li { height: 30px; line-height: 30px; border-bottom: 1px solid #ccc; } </style> </head> <body> <ul id="scroll-list"> <li>第一条滚动内容</li> <li>第二条滚动内容</li> <li>第三条滚动内容</li> <li>第四条滚动内容</li> <li>第五条滚动内容</li> <li>第六条滚动内容</li> </ul> <script> function scrollList() { var ul = document.getElementById("scroll-list"); var liHeight = ul.getElementsByTagName("li")[0].offsetHeight; var scrollDistance = 0; setInterval(function() { ul.style.transition = "transform 0.5s ease"; scrollDistance += liHeight; ul.style.transform = "translateY(-" + scrollDistance + "px)"; if (scrollDistance >= liHeight * ul.getElementsByTagName("li").length) { ul.style.transition = ""; ul.style.transform = ""; ul.appendChild(ul.getElementsByTagName("li")[0]); scrollDistance = 0; } }, 2000); } window.onload = function() { scrollList(); } </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值