Very important watch the tutorial: https://youtu.be/NRS9p8vpu3g
<iframe id="videoFrame" width="560" height="315" src="" frameborder="0" allowfullscreen></iframe>
<script> const images = document.querySelectorAll('.fb-vid-gallery-one__card'); const popup = document.getElementById('fb-video-popup'); const container = popup.querySelector('.fb-video-popup__container'); const videoFrame = document.getElementById('videoFrame'); const prevButton = popup.querySelector('.fb-video-popup__prev'); const nextButton = popup.querySelector('.fb-video-popup__next'); const closeButton = popup.querySelector('.fb-video-popup__close'); const autoplay = true; const loop = true; const showControls = false; let currentIndex = 0; document.addEventListener('keydown', (event) => { if (popup.classList.contains('fb-open')) { if (event.key === 'ArrowLeft') { currentIndex = (currentIndex - 1 + images.length) % images.length; loadVideo(currentIndex); } else if (event.key === 'ArrowRight') { currentIndex = (currentIndex + 1) % images.length; loadVideo(currentIndex); } else if (event.key === 'Escape') { closePopup(); } } }); popup.addEventListener('keydown', (event) => { const focusableElements = popup.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"]), iframe'); const firstFocusable = focusableElements[0]; const lastFocusable = focusableElements[focusableElements.length - 1]; if (event.key === 'Tab') { if (event.shiftKey) { if (document.activeElement === firstFocusable) { event.preventDefault(); lastFocusable.focus(); } } else { if (document.activeElement === lastFocusable) { event.preventDefault(); firstFocusable.focus(); } } } }); let lastFocusedCard = null; images.forEach((image, index) => { image.addEventListener('click', () => { const videoId = image.getAttribute('data-video'); const controlsParam = showControls ? '&controls=1' : '&controls=0'; const videoUrl = `https://www.youtube.com/embed/${videoId}?autoplay=${autoplay ? 1 : 0}&loop=${loop ? 1 : 0}${controlsParam}`; videoFrame.src = videoUrl; popup.classList.add('fb-open'); currentIndex = index; }); image.addEventListener('keydown', (event) => { if (event.key === 'Enter') { openPopup(index); } }); image.addEventListener('focus', () => { lastFocusedCard = image; image.addEventListener('keydown', (event) => { if (event.key === 'Enter') { openPopup(index); } }); }); }); prevButton.addEventListener('click', () => { currentIndex = (currentIndex - 1 + images.length) % images.length; loadVideo(currentIndex); }); nextButton.addEventListener('click', () => { currentIndex = (currentIndex + 1) % images.length; loadVideo(currentIndex); }); closeButton.addEventListener('click', () => { closePopup(); }); popup.addEventListener('click', (event) => { if (event.target === container) { // Prevent closing the popup when clicking inside the container return; } if ( event.target !== prevButton && event.target !== nextButton && !prevButton.contains(event.target) && !nextButton.contains(event.target) && !closeButton.contains(event.target) ) { closePopup(); } }); function openPopup(index) { const videoId = images[index].getAttribute('data-video'); const controlsParam = showControls ? '&controls=1' : '&controls=0'; const videoUrl = `https://www.youtube.com/embed/${videoId}?autoplay=${autoplay ? 1 : 0}&loop=${loop ? 1 : 0}${controlsParam}`; videoFrame.src = videoUrl; popup.classList.add('fb-open'); currentIndex = index; setTimeout(() => { nextButton.focus(); }, 100); } function loadVideo(index) { const videoId = images[index].getAttribute('data-video'); const controlsParam = showControls ? '&controls=1' : '&controls=0'; const videoUrl = `https://www.youtube.com/embed/${videoId}?autoplay=${autoplay ? 1 : 0}&loop=${loop ? 1 : 0}${controlsParam}`; videoFrame.src = videoUrl; } function closePopup() { popup.classList.remove('fb-open'); setTimeout(() => { videoFrame.src = ''; if (lastFocusedCard) { lastFocusedCard.focus(); } }, 400); } </script>