Непревзойденная млекопитающая является верной в том смысле, что, по-видимому, ОП не обратился к тегу видео. В дополнение к правильной ссылке на упомянутое видео, мы должны «прослушивать» изменения в окне просмотра, если мы намерены адаптировать видео при каждом изменении размера окна. Кроме того, видео в OP следует поменять местами, учтите следующее:
... const mQL = window.matchMedia("(min-width: 481px)");
Медиа-запрос, переданный методу matchMedia () , означает:
"Примените следующие правила, выражения, операторы и т. Д., Когда ширина области просмотра равна 481px или больше "
Таким образом, когда это условие TRUE
, видео большего размера должно быть загружено, в противном случае видео меньшего размера должно быть загружено:
если mQL.matches
, то назначить видео большего размера на vid.src
остальное назначить видео меньшего размера на vid.src
Примечание: Первое видео (560x278), которое соответствует mQL
(min-width: 481px) ergo, равно TRUE
. Второе видео было изменено с огромного видео (854x438, что также было бы правдой) на видео соответствующего размера: (480x318). Также обратите внимание: исходный медиазапрос был в 480px и изменен на 481px, потому что лучшее видео для замены, которое у меня есть, имеет естественную ширину 480px.
Дальнейшие детали прокомментированы в Демо и Ручка ( Демо в режиме полной страницы не работает , но работает в CodePen , перетащите окно ниже ширины 481 пикселей, чтобы увидеть магию)
Демо 1
Два видео с использованием .addListener()
Демо 2
Три видео - несколько mediaQueryLists в массиве