以下是一个使用原生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`,以确保超出容器高度的内容不会显示出来。