JavaScript 中实现奖名单滚动效果通常涉及到定时器和DOM操作。以下是一个简单的示例代码,用于创建一个滚动的中奖名单:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>中奖名单滚动</title>
<style>
#scrollingList {
width: 300px;
height: 50px;
overflow: hidden;
border: 1px solid #ccc;
position: relative;
}
#scrollingList ul {
list-style-type: none;
padding: 0;
margin: 0;
position: absolute;
width: 100%;
}
#scrollingList li {
padding: 15px;
text-align: center;
}
</style>
</head>
<body>
<div id="scrollingList">
<ul>
<li>张三</li>
<li>李四</li>
<li>王五</li>
<li>赵六</li>
<li>孙七</li>
</ul>
</div>
<script>
function scrollList() {
const list = document.getElementById('scrollingList');
const ul = list.querySelector('ul');
const firstItem = ul.firstElementChild;
// 将第一个子元素移动到最后
ul.appendChild(firstItem);
}
// 每隔一段时间滚动一次
setInterval(scrollList, 2000);
</script>
</body>
</html>
setInterval
函数用于设置一个定时重复执行的函数。setInterval
的时间间隔可以控制滚动速度。如果遇到滚动不流畅的问题,可以尝试使用requestAnimationFrame
来优化动画效果:
function scrollList() {
const list = document.getElementById('scrollingList');
const ul = list.querySelector('ul');
const firstItem = ul.firstElementChild;
// 将第一个子元素移动到最后
ul.appendChild(firstItem);
// 使用requestAnimationFrame优化动画
requestAnimationFrame(scrollList);
}
// 开始滚动
requestAnimationFrame(scrollList);
通过这种方式,可以确保滚动效果更加平滑,因为它会根据浏览器的刷新率来执行动画,从而提高性能。