请编写原生JS代码实现:循环背景图
时间: 2024-09-14 07:17:03 浏览: 53
使用原生的javascript来实现轮播图
要使用原生JavaScript实现循环背景图的效果,你可以利用HTML5中的`<canvas>`元素以及JavaScript的定时器函数。下面是一个简单的实现示例代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>循环背景图</title>
<style>
body, html {
margin: 0;
padding: 0;
overflow: hidden;
}
canvas {
display: block;
}
</style>
</head>
<body>
<canvas id="bgCanvas"></canvas>
<script>
var canvas = document.getElementById('bgCanvas');
var ctx = canvas.getContext('2d');
// 设置画布大小
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
// 加载图片
var images = [];
var image1 = new Image();
image1.src = 'path_to_image_1.jpg'; // 替换为实际图片路径
images.push(image1);
var image2 = new Image();
image2.src = 'path_to_image_2.jpg'; // 替换为实际图片路径
images.push(image2);
var imageIndex = 0; // 当前图片索引
var time = 0; // 计时器
function animate() {
ctx.clearRect(0, 0, canvas.width, canvas.height); // 清除画布
// 绘制当前图片
ctx.drawImage(images[imageIndex], 0, 0, canvas.width, canvas.height);
// 切换图片
time += 10; // 增加计时器
if (time > 3000) { // 当计时器达到一定值时切换图片
time = 0;
imageIndex++;
if (imageIndex >= images.length) {
imageIndex = 0;
}
}
requestAnimationFrame(animate); // 循环调用
}
animate(); // 开始动画
</script>
</body>
</html>
```
在这个示例中,我们创建了一个`<canvas>`元素,并设置其宽度和高度与浏览器窗口一致。接着,我们定义了一个`images`数组,用于存储需要循环显示的图片。我们使用`Image`对象来加载图片,并在图片加载完成后,通过定时器`requestAnimationFrame`不断调用`animate`函数来绘制图片并循环切换它们。
请注意,你需要将`path_to_image_1.jpg`和`path_to_image_2.jpg`替换为实际的图片路径。
阅读全文