2016-11-25 77 views
0

我有一段视频在使用Safari时没有按照应有的方式进行响应。它确实会加载,因为我可以听到视频的声音,但是我只能在滚动一下后才能看到视频。换句话说:直到我滚动浏览器窗口时,视频才可见。 Please Check here并点击一个红色的包。视频未在Safari浏览器中显示,但仅在滚动一下后才显示

这是我使用的代码:

$('#video-togglebutton').on('click', function() { 
 
    var videoDiv = $('#videoDiv').toggle(); 
 

 
    if (videoDiv.is(':visible')) { 
 
    $('#video').get(0).load(); 
 
    $('#video').get(0).play(); 
 
    } else { 
 
    $('#video').get(0).pause(); 
 
    } 
 
}); 
 

 
$(document).ready(function() { 
 
    $('#video').on('ended', function() { 
 
    $('#video').get(0).pause(); 
 
    $('#videoDiv').toggle(); 
 
    }); 
 
});
#videoDiv { 
 
      display:none; 
 
      left: 50%; 
 
      transform: translate(-50%, 0); 
 
      height: 35vw; 
 
      position: relative; 
 
      text-align:center; 
 
      
 
      } 
 
      
 
      #videoBlock{ 
 
      width:60vw; 
 
      height: 35vw; 
 
      position: absolute; 
 
      top: 0; 
 
      left: 0; 
 
      left: 50%; 
 
      transform: translate(-50%, 0); 
 
      
 
      } 
 
      
 
      .videoClick { 
 
      text-align: center; 
 
      } 
 
      
 
      .videoClick a { 
 
      color: white; 
 
      font-size: 1.7em; 
 
      cursor: pointer; 
 
      cursor: hand 
 
      } 
 
      
 
      
 
      video { 
 
      background-image: url("{{ 'fotel-photography-loading-3.svg' | url_asset }}"); 
 
      background-repeat: no-repeat; 
 
      background-size: 100px 100px; 
 
      background-position: center; 
 
      margin-top:-34px; 
 
      width:100%;   
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="video-togglebutton">Toggle video</button> 
 
<div id="videoDiv" style="display:none"> 
 
    <div id="videoBlock"> 
 
    <video preload="preload" id="video"> 
 
     <source src="https://static.webshopapp.com/shops/054833/files/093143183/fotel-photography-course-tour-workshop-video-4.mp4" type="video/mp4"> 
 
    </video> 
 
    </div> 
 
</div>

现在,我认为是一个黑客,使用下面这额外的代码放到if语句以上,但我不工作。

if(video.readyState == 4){ 
     $(window).scrollTop($(window).scrollTop()+1); 
     $(window).scrollTop($(window).scrollTop()-1); 
} 

回答

0

这个工程(中位一个黑客):

/*makes window scroll down and up again one pixel, after page is loaded*/ 
$(window).load(function(){ 
    $(window).scrollTop($(window).scrollTop()+1); 
    $(window).scrollTop($(window).scrollTop()-1); 
} 
0

只需添加width: 100%的视频元素#video,你就会有它与塔同宽体:

#video { 
    width:100%; 
} 

$('#video-togglebutton').on('click', function() { 
 
    var videoDiv = $('#videoDiv').toggle(); 
 

 
    if (videoDiv.is(':visible')) { 
 
    $('#video').get(0).load(); 
 
    $('#video').get(0).play(); 
 
    } else { 
 
    $('#video').get(0).pause(); 
 
    } 
 
}); 
 

 
$(document).ready(function() { 
 
    $('#video').on('ended', function() { 
 
    $('#video').get(0).pause(); 
 
    $('#videoDiv').toggle(); 
 
    }); 
 
});
#videoDiv { 
 
    width: 100%; 
 
    height: 360px; 
 
    position: relative; 
 
} 
 
#videoBlock, 
 
#videoMessage { 
 
    width: 100%; 
 
    height: 360px; 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
} 
 

 
#video { 
 
    width:100%; 
 
} 
 

 
.videoClick { 
 
    text-align: center 
 
} 
 
.videoClick a { 
 
    color: white; 
 
    background-color: rgba(241, 241, 241, 0.25); 
 
    font-size: 1.7em; 
 
    cursor: pointer; 
 
    cursor: hand 
 
} 
 

 
video { 
 
background-image: url("{{ 'fotel-photography-loading-3.svg' | url_asset }}"); 
 
background-repeat: no-repeat; 
 
background-size: 100px 100px; 
 
background-position: center; 
 
margin-top:-34px; 
 
width:100%;   
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="video-togglebutton">Toggle video</button> 
 
<div id="videoDiv" style="display:none"> 
 
    <div id="videoBlock"> 
 
    <video preload="preload" id="video"> 
 
     <source src="https://static.webshopapp.com/shops/054833/files/093143183/fotel-photography-course-tour-workshop-video-4.mp4" type="video/mp4"> 
 
    </video> 
 
    </div> 
 
</div>

+0

谢谢@Christos Lytras。但是,这没有什么区别。我编辑了我的问题中的代码。 – Eddy

相关问题