Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Воспроизвести видео html 5 при помощи jquery (https://javascript.ru/forum/misc/82970-vosproizvesti-video-html-5-pri-pomoshhi-jquery.html)

voraa 18.08.2021 16:20

Цитата:

Сообщение от рони
пока по странице не кликнут или ещё как-то произведут событие на странице руками, а не скриптом.

Причем разные браузеры по разному оценивают, что вызвано действиями пользователя, а что автоматом.

StartGames 18.08.2021 16:23

Цитата:

Сообщение от рони (Сообщение 539481)
StartGames,
автоматом звук и видио запрещены, пока по странице не кликнут или ещё как-то произведут событие на странице руками, а не скриптом.

вот оно что... Действительно. Правда я до этого каким то чудом умудрился пару раз запустить со звуком на автомате, но только... ааа, я повесил действие что при клике на сам блок овл карусели, будет воспроизводиться все видео в блоке. Хотел проверить работает ли само действие, так как не был уверен в работоспособности фокуса (слайдер в видимой части экрана). Но я не кликал на блок, при наведении все само проигрывалось. Возможно натолкнулся на баг))

В любом случае огромное Вам спасибо)) Не первый раз выручаете.:yes:

StartGames 18.08.2021 17:23

Решил отключать видео при клике на баннер.

Действия:
При клике на сам блок отключать все видео в этом блоке, и затем моментально запускать только то, у которого в пути есть класс .active

Но столкнулся с проблемой:
Я пытался отключить все видео вот таким запросом:

$('#banner_slays_{{ module_id }}').click(function() {
        $('#banner_slays_{{ module_id }} .owl-item video').pause();
    });


Но опять же, он не сработает по причине которую вы описывали ранее. Сработает только такая конструкция:

$('#banner_slays_{{ module_id }}').click(function() {
        $('#banner_slays_{{ module_id }} .owl-item video')[0].pause();
    });




Проблема:
Я бы мог создать действие для каждого видео в этом блоке. На данный момент их 4. Но я не знаю буду ли в будущем добавлять слайды, и тогда придется опять идти в код и добавлять событие. А это неудобно очень.



Вопрос:
Можно как то одним действием отключить все видео в этом блоке?



Зачем:
Я не знаю какой слайд был перед включен перед тем как пользователь переключил слайд. И соответственно это видео будет продолжать играть. А так, после клика я просто отключаю их всех и сразу включаю только то что содержит в пути класс .active

Таким образом я и неактивные отрубаю, и активный слайд включаю.

рони 18.08.2021 18:08

Цитата:

Сообщение от StartGames
Можно как то одним действием отключить все видео в этом блоке?

$('#banner_slays_{{ module_id }}').click(function() {
        $('#banner_slays_{{ module_id }} .owl-item video').each((i, video) => video.pause());
    })

StartGames 19.08.2021 13:31

Цитата:

Сообщение от рони (Сообщение 539494)
$('#banner_slays_{{ module_id }}').click(function() {
        $('#banner_slays_{{ module_id }} .owl-item video').each((i, video) => video.pause());
    })

Ну вы просто Бог яваскрипта)) Спасибо Вам за помощь) :thanks:


Часовой пояс GMT +3, время: 02:37.