跑马灯(Marquee)是一种常见的网页效果,用于在页面上循环滚动显示文本或图像。通过JavaScript可以实现更加灵活和动态的跑马灯效果。
以下是一个简单的JavaScript实现水平滚动跑马灯的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>跑马灯示例</title>
<style>
#marquee {
width: 100%;
overflow: hidden;
white-space: nowrap;
position: relative;
}
#marquee span {
display: inline-block;
padding-left: 100%;
animation: marquee 15s linear infinite;
}
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
</style>
</head>
<body>
<div id="marquee">
<span>这是一个跑马灯效果的示例。欢迎来到这里!</span>
</div>
</body>
</html>
document.addEventListener("DOMContentLoaded", function() {
const marquee = document.getElementById('marquee');
const content = marquee.querySelector('span');
const contentWidth = content.offsetWidth;
const marqueeWidth = marquee.offsetWidth;
// 复制内容以实现无缝滚动
content.innerHTML += ' ' + content.innerHTML;
// 调整动画时间以适应内容长度
const duration = (contentWidth / marqueeWidth) * 15; // 15秒为基础时间
content.style.animationDuration = `${duration}s`;
});
requestAnimationFrame
进行动画控制。通过以上方法,可以实现一个简单且高效的跑马灯效果。如果需要更复杂的功能,可以进一步扩展和优化代码。
领取专属 10元无门槛券
手把手带您无忧上云