一、前言
突然接到个需求,用户觉得单纯的图片轮播展示太单调了,需要把视频加上,使用audio在谷歌 上自动播放视频加图片进行轮播操作,废话也不多说了
注:简单写了个示例代码,如需其它要求自行研究
二、实现代码
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>视频和图片轮播</title>
<style>
img{
display: none;
}
</style>
</head>
<body>
<video id="video1" autoplay muted>
<source src="img/20240129_163757.mp4" type="video/mp4">
</video>
<!--先隐藏第二个视频-->
<video id="video2" style="display:none;">
<source src="img/20240129_165135.mp4" type="video/mp4">
</video>
<!--隐藏所有图片-->
<div id="imageCarousel" style="display: none;">
<img src="img/evaluate_bg.png" alt="Image 1">
<img src="img/img.png" alt="Image 2">
</div>
<script>
var video1 = document.getElementById('video1');
var video2 = document.getElementById('video2');
var imageCarousel = document.getElementById('imageCarousel');
var images = imageCarousel.getElementsByTagName('img');
var currentIndex = 0;
video1.addEventListener('ended', function () {
// 隐藏第一个视频
video1.style.display = 'none';
// 显示第二个视频
video2.style.display = 'block';
// 播放第二个视频
video2.play();
});
video2.addEventListener('ended', function () {
// 隐藏第二个视频
video2.style.display = 'none';
// 显示图片信息
imageCarousel.style.display = 'block';
// 显示第一张图片
images[currentIndex].style.display = 'block';
// 第二个视频播放完后,轮播图片
setTimeout(rotateImages, 5000);
});
function rotateImages() {
images[currentIndex].style.display = 'none';
currentIndex = (currentIndex + 1) % images.length;
// 如果回到第一个图片,则播放第一个视频
if (currentIndex === 0) {
video1.style.display = 'block';
video1.play();
} else {
images[currentIndex].style.display = 'block';
setTimeout(rotateImages, 5000);
}
}
</script>
</body>
</html>