请用html、css、js做一个ul里面的li内容向上循环滚动的效果,我希望这个循环的效果是无限循环,循环向上滚动,比如第一条在顶部消失后出现在底部继续向上滚动,以此类推
时间: 2024-03-05 22:51:19 浏览: 81
好的,以下是一个简单的实现代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>无限循环滚动</title>
<style>
ul {
list-style: none;
padding: 0;
margin: 0;
overflow: hidden;
height: 100px;
}
li {
height: 25px;
line-height: 25px;
}
</style>
</head>
<body>
<ul id="list">
<li>第一条</li>
<li>第二条</li>
<li>第三条</li>
<li>第四条</li>
</ul>
<script>
var list = document.getElementById("list");
var lis = list.getElementsByTagName("li");
var timer = null;
var speed = 1;
function roll() {
if (list.scrollTop % 25 == 0) {
clearInterval(timer);
setTimeout(start, 1000);
} else {
list.scrollTop += speed;
if (list.scrollTop >= lis.length * 25) {
list.scrollTop = 0;
}
}
}
function start() {
timer = setInterval(roll, 20);
}
setTimeout(start, 1000);
</script>
</body>
</html>
```
这个代码实现了一个高度固定为100像素的ul列表,其中的li元素高度为25像素,通过JS实现了向上无限循环滚动的效果。具体实现方式是通过设置ul元素的overflow属性为hidden,然后通过JS控制ul元素的scrollTop属性实现滚动效果。当滚动到最后一个li元素时,将scrollTop归零,实现循环滚动的效果。
阅读全文