Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 09.02.2018, 10:28   #1
Andrej_K
Форумчанин
 
Регистрация: 27.07.2013
Сообщений: 228
Репутация: 29
По умолчанию Как получить ширину и высоту видео в теге <video>?

Что-то делаю не в то время, но не могу понять что, т. к. при первой загрузке страницы ширина и высота видео получаются, а при перезагрузке становятся 300х150. Понимаю, что при перезагрузке получаю первыми размеры блока по умолчанию, но не могу понять как этого избежать. Делаю адаптивное видео в шапке сайта.

Код:

(function () {
 
        $(window).on('load resize orientationchange', function () {
 
            let Wrapper = $('#responsive-headers-media-wrapper');
            let Image   = $('#header-background-image');
            let Video   = $('#header-background-video');
 
 
            console.clear();
            console.log(Video.width());
            console.log(Video.height());
 
 
            Image.removeAttr('style');
            Video.removeAttr('style');
 
            let AspectRatioWrapper = Wrapper.width() / Wrapper.height();
            let AspectRatioImage = Image.width() / Image.height();
            let AspectRatioVideo = Video.width() / Video.height();
 
            // Setup size of header image.
            if (AspectRatioWrapper >= AspectRatioImage) {
                Image.width(Wrapper.width());
            } else if (AspectRatioWrapper < AspectRatioImage) {
                Image.height(Wrapper.height());
            }
 
            // Setup size of header video.
            if (AspectRatioWrapper >= AspectRatioVideo) {
                Video.width(Wrapper.width());
            } else if (AspectRatioWrapper < AspectRatioVideo) {
                Video.height(Wrapper.height());
            }
        });
    })();

Andrej_K вне форума   Ответить с цитированием
Старый 21.02.2018, 23:32   #2
Naive
Раздолбайских Дел
Профессионал
 
Аватар для Naive
 
Регистрация: 22.05.2009
Адрес: Екатеринбург
Сообщений: 3,632
Репутация: 1993
По умолчанию

Могу продположить: при перезагрузке ты получаешь уже закешированое видео. Чтобы получить настоящие размеры, тебе нужно программно загрузить видео: создать объект видео, привязать к нему событие загрузки, хэндлером к которому, ты начнешь получать размеры (и прочее нужное и ненужное). Затем уже дать этому объекту источник.
Дублем браузер грузить ничего не будет, но событие загрузки честно выполнит.
Так же действовали с загрузкой картинок. Загуглишь.
__________________
Работаю. В этот раз за деньги.
Жду ваши искренние спасибы на яндекс-кошелек: 410011068154587
Naive вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать блок на всю высоту окна минус высоту шапки и футера Qaliti HTML и CSS 3 19.07.2012 13:20
Нарисовать в графическом режиме ромб. Ширину и высоту задавать с клавиатуры mulatoschka1990 Assembler 3 02.12.2009 11:11
Как отстроить ширину и высоту у DBGrid madmech Общие вопросы Delphi 0 14.10.2009 19:18
как в стрингриде задавать ширину(высоту) ячеек, а для отдельных строк (столбцов)) sdp Компоненты Delphi 3 20.06.2007 23:02
info video - получить информацию о видео файле Toxa Общие вопросы Delphi 1 04.12.2006 18:02


00:31.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru