Сегодня задавал уже вопрос в рамках этой задачи, но теперь вопрос другой.
Суть: Надо сначала прочитать метатеги видео, чтобы получить истинный размер видео, а потом изменять размер в зависимости от размеров окна.
var videoH = new Array,videoW = new Array;
$(document).ready(function(){
$(window).on("resize", function () {
scaleVideoContainer();
scaleBannerVideoSize('.video-container video');
});
$('.video-container video').each(function(){
$(this).bind("loadedmetadata", function () {
videoH.push(this.videoHeight);
videoW.push(this.videoWidth);
});
});
scaleVideoContainer(); // ресайзим контейнер
scaleBannerVideoSize('.video-container video'); // ресайзим видео
});
function scaleBannerVideoSize(element){
var row = 0;
$(element).each(function(){
var videoHeight, videoWidth;
!function(row){
videoHeight = videoH[row];
videoWidth = videoW[row];
console.log(videoHeight); // пусто при первичном рендере, а при ресайзе все ОК.
}.call(this, row);
++row;
});
});
Проблема в том, что сначала выполняется функция scaleBannerVideoSize а уже потом $(this).bind("loadedmetadata", function () {}