在JavaScript中实现两张图片交替出现的效果,通常涉及到定时器(如setInterval
)和DOM操作。以下是一个基础的概念解释以及实现这一效果的示例代码。
DOM操作:JavaScript可以通过DOM(文档对象模型)接口来修改HTML文档的内容、结构和样式。
定时器:setInterval
函数用于周期性地执行某段代码,常用于创建动画效果。
setInterval
定时器来周期性地切换图片的可见性。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片交替显示</title>
<style>
.hidden { display: none; }
</style>
</head>
<body>
<img id="image1" src="path/to/image1.jpg" alt="Image 1">
<img id="image2" src="path/to/image2.jpg" alt="Image 2" class="hidden">
<script src="script.js"></script>
</body>
</html>
// 获取图片元素
const image1 = document.getElementById('image1');
const image2 = document.getElementById('image2');
let currentImageIndex = 1; // 初始显示第一张图片
// 定义切换图片的函数
function switchImage() {
if (currentImageIndex === 1) {
image1.classList.add('hidden'); // 隐藏第一张图片
image2.classList.remove('hidden'); // 显示第二张图片
currentImageIndex = 2;
} else {
image2.classList.add('hidden'); // 隐藏第二张图片
image1.classList.remove('hidden'); // 显示第一张图片
currentImageIndex = 1;
}
}
// 设置定时器,每隔一段时间切换一次图片
setInterval(switchImage, 1000); // 每隔1秒切换一次
优势:
应用场景:
问题1:图片加载缓慢或出现闪烁。
const preloadImages = (images) => {
images.forEach(image => {
const img = new Image();
img.src = image;
});
};
preloadImages(['path/to/image1.jpg', 'path/to/image2.jpg']);
问题2:定时器导致页面卡顿。
requestAnimationFrame
来替代setInterval
进行动画渲染。通过以上步骤和代码示例,你可以实现两张图片在网页上交替出现的效果,并根据需要进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云