图像和视频滑块自动播放
Image and Video Slider Autoplay
我正在使用 bxslider 在滑块上显示图像和视频,我需要滑块每 5 秒显示一次图像,但是当出现视频时,视频会自动播放直到结束。然后,放映下一张幻灯片。所有这些都必须在一个循环中。
我卡住了,无法正常工作。这是我的问题:
1.- 如果我将 bxslider "auto=true" 设置为从一个滑块更改为另一个滑块,它会在播放视频时执行。
2.- 如果我禁用 "auto" 属性 第一个视频播放到最后然后切换到下一个滑块,但下一个视频不播放。取而代之的是,第一个视频再次播放。
3.- 如果没有插件就更好了,因为解决这个问题后我需要添加一些 PHP 来动态化内容。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/videos.css" rel="stylesheet" />
<link href="css/jquery.bxslider.css" rel="stylesheet"/>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.bxslider.min.js" type="text/javascript"></script>
<script src="js/jquery.fitvids.js" type="text/javascript"></script>
</head>
<body>
<ul class="bx" >
<li data-idx="0">
<video preload="" class="video-bg vid" id="vid0" >
<source src="video/01.mp4" type="video/mp4">
</video>
</li>
<li data-idx="1">
<img src="video/slider1.jpg">
</li>
<li data-idx="2">
<video preload="" class="video-bg vid" id="vid1" >
<source src="video/02.mp4" type="video/mp4">
</video>
</li>
</ul>
<script>
var vid0= document.getElementById("vid0");
vid0.onended = function(){
bx.goToNextSlide();
bx.redrawSlider();
vid0.load();
vid0.play();
vid1.pause();
}
var vid1= document.getElementById("vid1");
vid1.onended = function(){
bx.goToNextSlide();
bx.redrawSlider();
vid1.load();
vid1.play();
vid0.pause();
}
var bx = $('.bx').bxSlider({
video: true,
useCSS: false,
nextText: '',
prevText: '',
mode:'fade',
infiniteLoop:true,
auto:true,
onSliderLoad:function(currentIndex){
vid0.play();
},
});
</script>
</body>
</html>
之前的代码是我在网上找到的其他代码拼凑而成的。
非常感谢你的帮助谢谢!!
赫克托
我终于找到了解决办法。如果有人需要,我放在这里。
我使用了一些 css 来改变视频和图像的不透明度。
这里是 HTML 和 Javascript 代码:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/videos.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<video autoplay id="video1" class="video1">
<source src="video/01.mp4" type="video/mp4">
</video>
<video id="video2" class="video2">
<source src="video/02.mp4" type="video/mp4">
</video>
<video id="video3" class="video3">
<source src="video/03.mp4" type="video/mp4">
</video>
<img src="video/slider1.jpg" class="imagenes" id="imagen1">
</div>
<script>
var video1 = document.getElementById('video1');
var video2 = document.getElementById('video2');
var video3 = document.getElementById('video3');
var imagen1 = document.getElementById('imagen1');
function imgTransition(){
imagen1.style.opacity=0;
video1.play();
video1.style.opacity=1;
}
video1.onended = function(){
video2.play();
video1.style.opacity=0;
video2.style.opacity=1;
}
video2.onended = function(){
video3.play();
video2.style.opacity=0;
video3.style.opacity=1;
}
video3.onended = function(){
video3.style.opacity=0;
imagen1.style.opacity=1;
window.setTimeout(imgTransition, 5000);
}
</script>
</body>
</html>
这里是 CSS:
*{
padding:0;
margin:0;
}
video{
width:100%;
height:100%;
position:absolute;
object-fit:cover;
transition: all 1.2s linear;
z-index: -10;
}
.video1{
opacity:1;
}
.video2{
opacity:0;
}
.video3{
opacity:0;
}
.imagenes{
opacity:0;
transition:opacity 2s;
width:100%;
height:100%;
position:absolute;
object-fit:cover;
z-index: -10;
}
.container {
width:100%;
height:100%;
}
所有代码均基于 youtube 上的视频:
https://www.youtube.com/watch?v=Bxy7xspJO14
谢谢!
赫克托
我正在使用 bxslider 在滑块上显示图像和视频,我需要滑块每 5 秒显示一次图像,但是当出现视频时,视频会自动播放直到结束。然后,放映下一张幻灯片。所有这些都必须在一个循环中。
我卡住了,无法正常工作。这是我的问题:
1.- 如果我将 bxslider "auto=true" 设置为从一个滑块更改为另一个滑块,它会在播放视频时执行。
2.- 如果我禁用 "auto" 属性 第一个视频播放到最后然后切换到下一个滑块,但下一个视频不播放。取而代之的是,第一个视频再次播放。
3.- 如果没有插件就更好了,因为解决这个问题后我需要添加一些 PHP 来动态化内容。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/videos.css" rel="stylesheet" />
<link href="css/jquery.bxslider.css" rel="stylesheet"/>
<script src="js/jquery.min.js" type="text/javascript"></script>
<script src="js/jquery.bxslider.min.js" type="text/javascript"></script>
<script src="js/jquery.fitvids.js" type="text/javascript"></script>
</head>
<body>
<ul class="bx" >
<li data-idx="0">
<video preload="" class="video-bg vid" id="vid0" >
<source src="video/01.mp4" type="video/mp4">
</video>
</li>
<li data-idx="1">
<img src="video/slider1.jpg">
</li>
<li data-idx="2">
<video preload="" class="video-bg vid" id="vid1" >
<source src="video/02.mp4" type="video/mp4">
</video>
</li>
</ul>
<script>
var vid0= document.getElementById("vid0");
vid0.onended = function(){
bx.goToNextSlide();
bx.redrawSlider();
vid0.load();
vid0.play();
vid1.pause();
}
var vid1= document.getElementById("vid1");
vid1.onended = function(){
bx.goToNextSlide();
bx.redrawSlider();
vid1.load();
vid1.play();
vid0.pause();
}
var bx = $('.bx').bxSlider({
video: true,
useCSS: false,
nextText: '',
prevText: '',
mode:'fade',
infiniteLoop:true,
auto:true,
onSliderLoad:function(currentIndex){
vid0.play();
},
});
</script>
</body>
</html>
之前的代码是我在网上找到的其他代码拼凑而成的。
非常感谢你的帮助谢谢!!
赫克托
我终于找到了解决办法。如果有人需要,我放在这里。
我使用了一些 css 来改变视频和图像的不透明度。
这里是 HTML 和 Javascript 代码:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="css/videos.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<video autoplay id="video1" class="video1">
<source src="video/01.mp4" type="video/mp4">
</video>
<video id="video2" class="video2">
<source src="video/02.mp4" type="video/mp4">
</video>
<video id="video3" class="video3">
<source src="video/03.mp4" type="video/mp4">
</video>
<img src="video/slider1.jpg" class="imagenes" id="imagen1">
</div>
<script>
var video1 = document.getElementById('video1');
var video2 = document.getElementById('video2');
var video3 = document.getElementById('video3');
var imagen1 = document.getElementById('imagen1');
function imgTransition(){
imagen1.style.opacity=0;
video1.play();
video1.style.opacity=1;
}
video1.onended = function(){
video2.play();
video1.style.opacity=0;
video2.style.opacity=1;
}
video2.onended = function(){
video3.play();
video2.style.opacity=0;
video3.style.opacity=1;
}
video3.onended = function(){
video3.style.opacity=0;
imagen1.style.opacity=1;
window.setTimeout(imgTransition, 5000);
}
</script>
</body>
</html>
这里是 CSS:
*{
padding:0;
margin:0;
}
video{
width:100%;
height:100%;
position:absolute;
object-fit:cover;
transition: all 1.2s linear;
z-index: -10;
}
.video1{
opacity:1;
}
.video2{
opacity:0;
}
.video3{
opacity:0;
}
.imagenes{
opacity:0;
transition:opacity 2s;
width:100%;
height:100%;
position:absolute;
object-fit:cover;
z-index: -10;
}
.container {
width:100%;
height:100%;
}
所有代码均基于 youtube 上的视频:
https://www.youtube.com/watch?v=Bxy7xspJO14
谢谢!
赫克托