vue 列表上下无缝滚动轮播
vue 列表上下无缝滚动轮播
滚动从头到尾从上到下,最后首位相接,无限滚动
// 判断是否滚动 setTopGoBom() { let dom = this.$refs[this.bodyTableId]; if (dom) { let allH = dom.offsetHeight; let chiDom = dom.firstElementChild; let chiLength = dom.children.length; let chiH = 0; let chiAllH = 0; // 存在子dom if (chiDom) { chiH = chiDom.offsetHeight; chiAllH = chiH * chiLength; // 比较行高 if (chiAllH > allH) { this.stateScorl(dom, chiDom); } } } }, // 开始滚动 stateScorl(dom, chiDom) { let _this = this; let timePop = 1; let offPop = this.resultNumRun; let chiH = chiDom.offsetHeight; // 清除前定时 if (this.timeScorl) { clearInterval(this.timeScorl); } if (this.timeScorl1) { clearTimeout(this.timeScorl1); } // 重置起始滚动条高度 let resultH = 0; this.timeScorl = setInterval(scorlRun, timePop); // 滚动方式 function scorlRun() { resultH = resultH + offPop; if (resultH > chiH) { if (_this.timeScorl) { clearInterval(_this.timeScorl); } if (this.timeScorl1) { clearTimeout(this.timeScorl1); } // 获取第一个节点并删除 添加到队尾 let fistnode = dom.firstElementChild; dom.removeChild(fistnode); dom.appendChild(fistnode); // 重置起始滚动条高度 resultH = 0; // 1秒后重新滚动 _this.timeScorl1 = setTimeout(function() { _this.timeScorl = setInterval(scorlRun, timePop); }, 1000); } else { setScrollTop(dom, resultH); } } //设置窗口滚动条高度 function setScrollTop(domIn, top) { if (!isNaN(top)) domIn.scrollTop = top; } },
转载标明来路-博客园,
联系方式1763907618@qq.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异