Я тестирую создание сайта локально на моей машине с помощью начальной загрузки.
У меня есть <video>
вроде заголовка сайта.
Мне бы хотелось, чтобы это видео показывало полную ширину и высоту на мобильном телефоне, а также показало обрезанную / широкую версию видео на рабочем столе.Я попытался использовать встроенные медиазапросы в тегах <source>
, чтобы src
изменился, но ничего не получалось.
Поэтому я переключил передачи и использовал некоторый javascript, чтобы изменить его таким образом.
Так что сумасшедшая вещь в том, что мой скрипт работает.Когда я смотрю в chrome dev tools, src
действительно изменяется, когда я изменяю размер экрана моего браузера, однако он не отражается на самом сайте, он сохраняет то, что src
я установил в html, как будтоэто игнорирует мой сценарий.
Я перепробовал все, что мог придумать, и я просто застрял, не зная, что делать дальше.Мой код ниже:
HTML
<video class="col-12" loop muted autoplay >
<source id="hvid" src="media/test.mp4" type="video/mp4">
</video>
JS
let homeVideo = document.getElementById('hvid')
console.log(homeVideo.src)
function myFunction(x) {
if (x.matches) { // If media query matches
homeVideo.src = "media/test.mp4";
} else {
homeVideo.src = "media/test-3.mp4";
}
}
var x = window.matchMedia("(max-width: 700px)")
myFunction(x) // Call listener function at run time
x.addListener(myFunction) // Attach listener function on state changes
;
console.log(homeVideo.src)
-Edits-
JS
var w = window.matchMedia("(max-width: 700px)");
var vid = document.getElementById("vid");
var source = document.getElementById("hvid");
window.addEventListener("resize", function screenres(){
if (w.matches) {
vid.pause();
source.src = "media/test.mp4";
vid.load();
vid.play();
} else {
vid.pause();
source.src = "media/test-3.mp4";
vid.load();
vid.play();
};
});
HTML
<div class="container">
<div class="row">
<video id="vid" class="col-12" loop muted autoplay>
<source id="hvid" src="media/test.mp4" type="video/mp4">
</video>
</div>
</div>