原生JavaScript图片跑马灯效果是一种常见的网页动画效果,它可以让一组图片在页面上循环滚动显示。下面我将详细介绍这个效果的基础概念、优势、类型、应用场景以及如何实现和解决常见问题。
跑马灯(Marquee)是一种文本或图像的滚动显示方式,通常用于新闻标题、广告等。原生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>
#marquee {
width: 100%;
overflow: hidden;
white-space: nowrap;
position: relative;
}
#marquee img {
width: 200px;
height: auto;
display: inline-block;
}
</style>
</head>
<body>
<div id="marquee">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
</div>
<script>
const marquee = document.getElementById('marquee');
const images = marquee.getElementsByTagName('img');
let totalWidth = 0;
for (let img of images) {
totalWidth += img.offsetWidth;
}
marquee.style.width = totalWidth + 'px';
let position = 0;
const speed = 1; // 滚动速度
function scroll() {
position -= speed;
if (position <= -totalWidth) {
position = 0;
}
marquee.style.transform = `translateX(${position}px)`;
requestAnimationFrame(scroll);
}
scroll();
</script>
</body>
</html>
requestAnimationFrame
代替setInterval
或setTimeout
,以确保动画流畅且性能更好。通过以上方法,你可以实现一个简单且高效的图片跑马灯效果,并解决常见的实现问题。
领取专属 10元无门槛券
手把手带您无忧上云