Определение размера отмасштабированного видео для разных браузеров
Здравствуйте, уважаемые фронтэнд разработчики!
Я новичок в JS. Помогите, пожалуйста, разобраться с тем, как правильно определять размер видео. Пишу фото-видео галерею на чистом JS. Мне необходимо динамически определять ширину миниатюр изображений и видео. Я использую и для картинок, и для видео метод getBoundingClientRect().width. Вот пример: http://jsfiddle.net/GlaIZier/d85dU/ Проблема в том, что после загрузки и хром, и ie9 выдают сперва одно число, а после нажатия на кнопку для повторного вычисления - совершенно другое, а точнее реальную ширину видео. Почему так происходит? Если взять видео локально с компьютера, то хром при загрузке сразу выдает реальный результат, а ie9 нет. Спасибо за помощь! |
|
Цитата:
Вот. |
|
nerv_,
Спасибо огромное! :dance: Это работает в IE для моей галереи. Однако в хроме он не заходит в обработчик события. Я пишу:
window.onload = function() {
// create slideshow as object derived from Gallery
var slideshow = Object(Gallery);
slideshow.init();
};
// get element by id
function $(id) {
return document.getElementById(id);
};
// get elements by tag name inside parent element or inseide document if it is undefined
function $$(tagName,parentElement) {
parentElement=parentElement||document;
return parentElement.getElementsByTagName(tagName);
};
Gallery.init = function() {
// ... действия по инициализации событий
$$('video', $('slider'))[0].addEventListener( "loadedmetadata", function (e) {
alert("СЮДА НЕ ЗАХОДИТ В ХРОМЕ!");
Gallery.fillSliderWidth();
}, false);
};
Alert в хроме не высвечивается. Никак не соображу почему...:blink: В IE9 все нормально выполняется. ************************************************** **** Я понял, в чем причина. Событие в хроме срабатывает раньше, чем я добавляю listener. На случай, если кому-то еще понядобится решение, я оставлю это здесь. |
| Часовой пояс GMT +3, время: 20:40. |