Я использую Swiper JS, чтобы создать слайдер видео Tiktok на моем веб -сайте. Я внедрил функцию, в которой пользователи могут нажать на само видео, чтобы переключаться между Play и Pause. Это отлично работает в браузерах для настольных компьютеров. Однако на мобильных устройствах переключатель Play/Pause ненадежна. Это не работает. Похоже, методы Play () и пауза () не запускаются на мобильных устройствах. < /P>
document.addEventListener('DOMContentLoaded', function() {
const swiper_video = new Swiper('.tiktok-carousel', {
loop: true, // Enable infinite loop
slidesPerView: "auto", // or number for fixed slides
spaceBetween: 10, // Space between slides
centeredSlides: true, // Center the active slide
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
enabled: false,
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
breakpoints: {
769: {
navigation: {
enabled: true
},
slidesPerView: 2,
},
1100: {
navigation: {
enabled: true
},
slidesPerView: 2,
centeredSlides: true,
},
});
swiper_video.on('init', () => {
const videos = document.querySelectorAll('.tiktok-embed');
videos.forEach(video => {
let isManuallyPaused = false;
let touchTimeout;
video.addEventListener('touchstart', function(event) {
event.preventDefault();
clearTimeout(touchTimeout);
touchTimeout = setTimeout(() => {
togglePlayPause(video);
}, 200);
});
video.addEventListener('click', function(event) {
event.stopPropagation();
togglePlayPause(video);
});
video.addEventListener('play', function() {
isManuallyPaused = false;
});
video.addEventListener('pause', function() {
if (!isManuallyPaused) {
video.play();
}
});
function togglePlayPause(video) {
if (video.paused) {
video.play();
isManuallyPaused = false;
} else {
video.pause();
isManuallyPaused = true;
}
}
});
});
swiper_video.on('transitionEnd', () => {
const videos = document.querySelectorAll('.tiktok-embed');
videos.forEach(video => {
video.pause();
});
});
});
< /code>
Что я пробовал: < /p>
Использование event.stoppropagation () в обработке клика. < /li>
Использование как TouchStart, так и нажмите слушатели событий. /li>
Обеспечение прикрепления слушателей событий после инициализации SWIPER. < /li>
< /ul>
Эта проблема сохраняется только в браузерах мобильных телефонов. Я подозреваю, что это может быть связано с тем, как мобильные браузеры обрабатывают события Touch и воспроизведение видео. Мне нужно решение, которое работает последовательно как на рабочем столе, так и на мобильных устройствах.
Подробнее здесь: https://stackoverflow.com/questions/794 ... rjs-slider
Мобильное видео воспроизведение/пауза переключатель не работает надежно (Swiperjs Slider) ⇐ Javascript
Форум по Javascript
1739602361
Anonymous
Я использую Swiper JS, чтобы создать слайдер видео Tiktok на моем веб -сайте. Я внедрил функцию, в которой пользователи могут нажать на само видео, чтобы переключаться между Play и Pause. Это отлично работает в браузерах для настольных компьютеров. Однако на мобильных устройствах переключатель Play/Pause ненадежна. Это не работает. Похоже, методы Play () и пауза () не запускаются на мобильных устройствах. < /P>
document.addEventListener('DOMContentLoaded', function() {
const swiper_video = new Swiper('.tiktok-carousel', {
loop: true, // Enable infinite loop
slidesPerView: "auto", // or number for fixed slides
spaceBetween: 10, // Space between slides
centeredSlides: true, // Center the active slide
pagination: {
el: ".swiper-pagination",
clickable: true,
},
navigation: {
enabled: false,
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev",
},
breakpoints: {
769: {
navigation: {
enabled: true
},
slidesPerView: 2,
},
1100: {
navigation: {
enabled: true
},
slidesPerView: 2,
centeredSlides: true,
},
});
swiper_video.on('init', () => {
const videos = document.querySelectorAll('.tiktok-embed');
videos.forEach(video => {
let isManuallyPaused = false;
let touchTimeout;
video.addEventListener('touchstart', function(event) {
event.preventDefault();
clearTimeout(touchTimeout);
touchTimeout = setTimeout(() => {
togglePlayPause(video);
}, 200);
});
video.addEventListener('click', function(event) {
event.stopPropagation();
togglePlayPause(video);
});
video.addEventListener('play', function() {
isManuallyPaused = false;
});
video.addEventListener('pause', function() {
if (!isManuallyPaused) {
video.play();
}
});
function togglePlayPause(video) {
if (video.paused) {
video.play();
isManuallyPaused = false;
} else {
video.pause();
isManuallyPaused = true;
}
}
});
});
swiper_video.on('transitionEnd', () => {
const videos = document.querySelectorAll('.tiktok-embed');
videos.forEach(video => {
video.pause();
});
});
});
< /code>
Что я пробовал: < /p>
Использование event.stoppropagation () в обработке клика. < /li>
Использование как TouchStart, так и нажмите слушатели событий. /li>
Обеспечение прикрепления слушателей событий после инициализации SWIPER. < /li>
< /ul>
Эта проблема сохраняется только в браузерах мобильных телефонов. Я подозреваю, что это может быть связано с тем, как мобильные браузеры обрабатывают события Touch и воспроизведение видео. Мне нужно решение, которое работает последовательно как на рабочем столе, так и на мобильных устройствах.
Подробнее здесь: [url]https://stackoverflow.com/questions/79441087/mobile-video-play-pause-toggle-not-working-reliably-swiperjs-slider[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия