HTML5视频-褪色效果不适用于Chrome
HTML5 Video - Fading Effects not working on Chrome
我目前在Chrome中面临一个奇怪的行为。基本上,我想做的是,把视频放在其他视频之上。
我有一个基本的视频,它在基层(z索引:0)。它一直在重复。当用户执行某些操作(单击按钮等)时,在单击按钮之前不可见的另一个视频应在其他视频的顶部淡出。
在Firefox(fe)中,一切都很正常。在Chrome中,什么都不会发生。淡出动画的时间用完后,顶部视频立即出现,而不是淡出。
http://jsfiddle.net/J36nQ/
我架起了一把小提琴。正如你所看到的,1000ms正在经历低谷,之后,顶部的视频会直接显示,而不会褪色。在Firefox中尝试这样做会成功地褪色动画。
这就是我迄今为止所尝试的:
<!DOCTYPE html>
<html>
<head>
<title>Video Test</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.video{
position: absolute;
}
#video{
z-index: 0;
}
#action-1-wrapper{
z-index: 1;
display: none;
}
button{
position: absolute;
bottom: 10px;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(function(){
$action1 = $('#action-1').get(0);
$mainVid = $('#main-video').get(0);
$('#play1').click(function(){
// Main Video should be paused when playing a video on top
stopMainVideo();
// I fade in the container which holds the video
$('#action-1-wrapper').fadeIn(1000, function(){
// After fading in the video in the top wrapper should be played
$action1.play();
});
});
$('.actionvideo').bind('ended', function(){
var $video = $(this).get(0);
$video.currentTime = 0;
$(this).parent().fadeOut(1000, function(){
playMainVideo();
});
});
function stopMainVideo()
{
$mainVid.pause();
}
function playMainVideo()
{
$mainVid.play();
}
});
</script>
</head>
<body>
<div id="video" class="video">
<video autobuffer width="100%" autoplay="autoplay" loop="loop" id="main-video">
<source src="https://workid-service.de/samplevids/loop.mp4" type="video/mp4" />
</video>
</div>
<div id="action-1-wrapper" class="video">
<video autobuffer width="100%" id="action-1" class="actionvideo">
<source src="https://workid-service.de/samplevids/aktion1.mp4" type="video/mp4" />
</video>
</div>
<button id="play1">Animation 1</button>
</body>
</html>
我希望有人能给我一个提示为什么chrome会这样。
提前感谢,Thomas
在适当/必要的地方使用不同的ID和类将大大帮助您解决问题。我已经在这里提供的jsfiddle中清理了它:http://jsfiddle.net/bas5D/2/
与其尝试.fadeIn()
和.fadeOut()
视频元素,只需应用一个css类,确保元素上有宽松的地方,并让css来淡化视频。
只需添加
$("#action-1").attr("style", "");
到
$('#play1').click(function(){});
看看我创建的jsfiddle,看看它正在进行中。
我刚刚弄清楚这个问题是从哪里来的。你们中的一些人甚至没有这个问题,因为chrome上的视频透明度只有在启用gpu加速的情况下才能工作。如果您的计算机不支持GPU加速,则不透明度始终为100%
相关文章:
- html5 drawImage适用于firefox,而不是chrome
- Jquery Ajax POST不工作.适用于GET
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- .load()适用于window,而不是ID
- 使用Jquery更改css样式适用于id's、 不在课堂上
- 提交按钮不会;不适用于Chrome或Firefox,但适用于Internet Explorer
- 为什么 javascript 中的“btoa”编码适用于 20 位字符串而不是 20 位整数
- Javascript String to Date适用于Chrome,而不是FF或Safari
- Onchange,向上,向下箭头键适用于FF和Chrome,但在IE中不起作用
- .load() 适用于 IE 和 dreamweaver 预览版,但不能使用 opera 和 chrome
- 找不到适用于 Highcharts 的 JSON 数组语法
- 为什么在jQuery中使用focusout适用于Firefox,而使用addEventListener则不适用;t
- jQuery选择菜单验证器适用于FF和Chrome,但不适用IE
- 单选按钮'onclick'适用于Chrome和Firefox,但不适用IE
- JQuery ScrollTop适用于chrome,但不适用firefox
- window.opener.location.href适用于IE,但不适用Chrome或Safari
- Frame Busting buster不完全适用于IE
- Jquery touch punch适用于Chrome和Firefox,但不适用IE
- 背景更改仅适用于chrome+$.预加载不适用;不起作用
- JavaScript window.location.replace适用于Firefox,但不适用IE或Chrome