Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 视频结束后重定向到图像_Javascript_Redirect_Html5 Video - Fatal编程技术网

Javascript 视频结束后重定向到图像

Javascript 视频结束后重定向到图像,javascript,redirect,html5-video,Javascript,Redirect,Html5 Video,我在一个网站上工作,我们一进入网站就有视频。 问题是它刚刚结束,我想在它结束后用一个图像替换它。 有没有办法在同一个容器中重定向它 <video id="video_background" preload="auto" volume="5" autoplay="1"><!--or turn on loop="loop"--> <source src="videos/trailer.webm" type="video/webm">

我在一个网站上工作,我们一进入网站就有视频。 问题是它刚刚结束,我想在它结束后用一个图像替换它。 有没有办法在同一个容器中重定向它

  <video id="video_background" preload="auto" volume="5" autoplay="1"><!--or turn on loop="loop"-->
          <source src="videos/trailer.webm" type="video/webm">
          <source src="videos/trailer.mp4" type="video/mp4">
          <source src="videos/trailer.ogv" type="video/ogg ogv">

  </video>



您必须使用JavaScript来检测视频结束,但它很容易实现:

var video = document.getElementById('video_background');

video.addEventListener('ended', function() {
    // show image here
}, false);
我建议以一个父容器为目标,该容器隐藏了一个预加载的图像,并且在事件开始时切换到该容器(显然还隐藏了视频元素)


您也可以动态添加图像,但请注意,加载图像时会有延迟。

您需要将视频标签包装在div容器中。请尝试以下代码:

CSS:

HTML:

编辑:如何平滑过渡淡入淡入或其他

我将使用jQuery来实现这一点,因为它是用这样的功能构建的

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"> 
var video = $('#video_background');
var image = $('#image_background');

video.on('ended', function() {
    $(this).fadeOut('200',function(){//$(this) refers to video
        image.fadeIn('200');
    });
});
</script>

var video=$(“#video_background”);
var image=$(“#image_background”);
video.on('end',function(){
$(this).fadeOut('200',function(){/$(this)指的是视频
image.fadeIn('200');
});
});

我将如何在那里添加图像。我对javascript非常陌生,所以请原谅我缺乏知识。你还可以详细说明隐藏的元素吗?工作起来很有魅力!除了突然之间我该如何平滑过渡淡入淡入还是什么?@user2861086-感谢接受答案-我添加了一个示例,说明如何使用jQuery实现这一点。如果这对你有好处,你也可以投票决定答案:)
<div id="wrapper"> 
<video id="video_background" preload="auto" volume="5" autoplay="1" width="100%" height="100%">
    <source src="videos/trailer.webm" type="video/webm" />
    <source src="videos/trailer.mp4" type="video/mp4" />
    <source src="videos/trailer.ogv" type="video/ogg ogv" />
</video>
<img id="image_background" src="yourImage.jpg" width="100%" height="100%" />
</div> 
var video = document.getElementById('video_background');
var wrapper = document.getElementById('wrapper');
var image = document.getElementById('image_background');
video.addEventListener('ended', function() {
    video.style.display = 'none';
    image.style.display = 'inline';
}, false);
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"> 
var video = $('#video_background');
var image = $('#image_background');

video.on('ended', function() {
    $(this).fadeOut('200',function(){//$(this) refers to video
        image.fadeIn('200');
    });
});
</script>