JS不间断向上滚动效果代码


以下是一个使用原生JavaScript实现的不间断向上滚动效果的简单示例。这个例子假设你有一个固定高度的容器(比如`div`),里面包含了你想要滚动的内容。内容的高度超过了容器的高度,所以我们使用JavaScript来模拟不间断的向上滚动效果。

HTML结构可能如下所示:


<div id="scrollContainer" style="overflow: hidden; height: 200px; border: 1px solid #000;">
    <div id="scrollContent" style="position: relative;">
        <!-- 这里是你的滚动内容,高度超过200px -->
        <p>内容1...</p>
        <p>内容2...</p>
        <!-- 更多内容 -->
    </div>
</div>

JavaScript代码实现不间断向上滚动效果:


function startContinuousScroll() {
    var container = document.getElementById('scrollContainer');
    var content = document.getElementById('scrollContent');
    var speed = 1; // 滚动速度,可以根据需要调整

    function scrollUp() {
        var pos = parseInt(content.style.top) || 0;
        if (pos > -content.offsetHeight + container.offsetHeight) {
            pos -= speed;
            content.style.top = pos + 'px';
            setTimeout(scrollUp, 10); // 每10毫秒调用一次,实现平滑滚动
        } else {
            content.style.top = '0px'; // 重置滚动位置,实现循环滚动
            scrollUp(); // 立即开始下一轮滚动
        }
    }

    scrollUp(); // 开始滚动
}

// 页面加载完成后开始滚动
window.onload = function() {
    startContinuousScroll();
};

这段代码首先获取了滚动容器和内容元素,然后定义了一个`scrollUp`函数,该函数每次被调用时都会将内容元素向上移动一定距离(由`speed`变量控制)。如果内容元素已经滚动到了容器的顶部以上(即`pos`大于`-content.offsetHeight + container.offsetHeight`),则将其重置回容器的顶部,并立即开始新一轮的滚动。`setTimeout`用于实现每隔一定时间(这里是10毫秒)调用一次`scrollUp`函数,从而实现平滑的滚动效果。

注意:这个示例中,`scrollContent`元素的`position`被设置为`relative`,这是为了能够通过修改其`top`属性来控制其位置。同时,`scrollContainer`的`overflow`被设置为`hidden`,以确保超出容器高度的内容不会显示出来。