2016-11-25 3 views
0

У меня есть видео, которое при использовании Safari не отвечает так, как должно. Он загружается, потому что я могу слышать звук видео, но я вижу видео только после прокрутки. Другими словами: видео не видно, пока я не прокручу окно браузера. Please Check here и нажмите на красный мешок.Видео не отображается в сафари, но отображается только после прокрутки

Это код, который я использовал:

$('#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(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

Смежные вопросы