原生JS实现列表内容自动向上滚动效果

网络编程 2025-04-16 12:41www.168986.cn编程入门

原生JavaScript实现列表内容的自动向上滚动

一、效果预览

当您将鼠标悬停在此处,滚动将会暂停;而当您的鼠标离开时,滚动则会继续。让我们共同感受这一动态效果。

二、实现过程

1. HTML结构的核心设计:关键组成部分是ul和li,它们被嵌套在一个外部div中。为了实现无缝循环滚动的效果,我们需要在原始的ul后面再复制一个相同的ul内容。这样,当第一个ul滚动到末尾时,可以无缝切换到第二个ul的起始位置。

核心代码实现:

```javascript

// 获取相关元素引用

const scrollDiv = document.querySelector('.scroll-container'); // 外层包裹的div元素

const ulList = document.querySelectorAll('ul')[0]; // 需要滚动的ul元素数组的第一个元素

const clonedList = ulList.cloneNode(true); // 克隆一个新的ul元素,包含相同的列表项内容

const totalListHeight = ulList.offsetHeight + clonedList.offsetHeight; // 计算两个列表的总高度

const maxHeight = scrollDiv.offsetHeight; // 外层div的高度限制值

let scrollTop = 0; // ul元素相对于外层div的顶部位置偏移量初始化为0

let isScrolling = false; // 是否正在滚动的标志位初始化为false

// 添加滚动事件监听器

scrollDiv.addEventListener('mouseover', function() {

isScrolling = false; // 鼠标移入时停止滚动

});

scrollDiv.addEventListener('mouseout', function() {

滚动浏览,一览无遗:原生JS实现列表内容的自动向上滚动效果

让我们来看一个视觉呈现效果。设想一个带有红色边框的容器,其内部包含两个列表。随着页面的加载,列表内容会以一种有趣的方式自动向上滚动。这一切都是基于原生JavaScript实现的。那么,我们该如何通过代码实现这一功能呢?接下来,长沙网络推广将为大家揭晓答案。

HTML部分代码如下:

```html

  • 第一条
  • 第二条

    ```

    CSS部分代码如下:

    ```css

    div {

    width: 100px; / 可根据需要调整宽度 /

    height: 63px; / 高度必须设置,用于控制可视区域 /

    overflow: hidden; / 控制内容溢出时的显示方式 /

    margin: 50px auto; / 边缘距离及居中显示 /

    border: 1px solid red; / 添加红色边框以便于观察 /

    text-align: center; / 文本居中对齐 /

    }

    ```

    接下来是JavaScript部分的核心代码:

    ```javascript

    window.onload = function() { roll(50); }; // 页面加载完成后执行滚动函数,参数为时间间隔(毫秒)可调整滚动速度。

    function roll(t) {

    var ul1 = document.getElementById("ment1"); // 获取第一个列表元素

    var ul2 = document.getElementById("ment2"); // 获取第二个列表元素用于存放滚动后的内容

    var ulbox = document.getElementById("review_box"); // 获取包含两个列表的容器元素

    ul2nerHTML = ul1nerHTML; // 将第一个列表的内容复制到第二个列表内

    ulbox.scrollTop = 0; // 设置容器顶部位置为初始状态

    var timer = setInterval(rollStart, t); // 设置定时器实现滚动效果,时间间隔由参数t控制

    // 当鼠标移入容器时暂停滚动

    ulbox.onmouseover = function() { clearInterval(timer); };

    // 当鼠标移出容器后恢复滚动

    ulbox.onmouseout = function() { timer = setInterval(rollStart, t); };

    }

    // 实现滚动的函数

    function rollStart() {

    var ul1 = document.getElementById("ment1"); // 再次获取列表元素(确保在定时器调用时仍为有效引用)

    var ulbox = document.getElementById("review_box"); // 获取容器元素以便设置滚动位置

    if (ulbox.scrollTop >= ul1.scrollHeight) { // 当滚动位置超过列表内容的总高度时归零并重新开始滚动

    ulbox.scrollTop = 0;

    } else {

    ulbox.scrollTop++; // 若未达到最大高度则向下滚动一行内容的位置(通过改变scrollTop的值实现)

    }

    }

    ```这样,当页面加载完成后,列表内容就会自动向上滚动起来。若想要调整滚动的速度或行为,只需修改JavaScript中的相关参数即可。对于不熟悉JavaScript的朋友来说,如果遇到任何疑问或问题,长沙网络推广会及时回复大家的咨询。如果您觉得本文对您有帮助,欢迎转载并注明出处。谢谢大家的支持与关注!让我们一起学习进步吧!您的每一个点赞和转发都是对我们最大的鼓励和支持!让我们一起加油!共创美好未来!狼蚁SEO与您携手前行!共创辉煌!让我们一起努力!共创佳绩!共享成功!共享荣耀!共享未来!共享美好人生!让我们一起加油!一起努力!一起奋斗!一起向前冲!共创辉煌的未来!共享美好的人生!让我们一起创造奇迹!一起实现梦想!一起走向成功之路!让我们一起携手前行!共创美好的明天!共享美好的未来!共享人生的精彩瞬间!让我们一起努力创造更多的奇迹和辉煌的未来吧!让我们一起加油吧!朝着梦想前进吧!让我们共同创造美好的明天和未来吧!让我们携手共进吧!共创辉煌的未来吧!共享人生的精彩瞬间吧!让我们一起努力前行吧!勇往直前吧!让我们共同创造属于我们的美好未来吧!(完) 结尾处可添加版权信息或其他声明内容以保持文章完整性)通过这段代码的运用不仅能帮助网站增加互动性和趣味性,同时也能为用户提供更便捷的使用体验。对于网站推广和用户体验优化而言无疑是一大助力。希望以上内容能给大家带来启发和帮助。谢谢大家的关注和支持!如有任何疑问请随时联系我们。我们将竭诚为您服务并为您解答问题。再次感谢大家的支持和关注!让我们一起努力共创美好未来吧!(结束

    上一篇:Vue 配合eiement动态路由,权限验证的方法 下一篇:没有了

    Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by