/* --------------------------------------------------------------------- モーダル設定 --------------------------------------------------------------------- */ // YouTube API が準備できたときに呼ばれるコールバック let players = []; function onYouTubeIframeAPIReady() { // すべてのiframeに対してプレイヤーインスタンスを作成 $('iframe[id^="youtube-video-"]').each(function (index, iframe) { players[index] = new YT.Player(iframe); }); } $(function () { // モーダルを開く処理 $('a[href][data-lity-modifications]').on('click', function () { const href = $(this).attr('href').split('#'); if (href.length !== 2 || href[1] === '') { return false; } const $target = $(`#${href[1]}`); if ($target.length !== 1) { return false; } $target.removeClass('lity-hide').closest('.lity-modifications').removeClass('lity-hide'); setTimeout(() => { $target.closest('.lity').removeClass('lity-closed').addClass('lity-opened'); }); return false; }); // モーダルを閉じる処理 (div.lity-wrap または button.lity-close をクリックした時) $('[data-lity-close], .lity-wrap, .lity-close').on('click', function () { const $target = $(this).find('.lity-content').children(':not(.lity-hide)'); $target.closest('.lity').removeClass('lity-opened').addClass('lity-closed'); setTimeout(() => { $target.addClass('lity-hide').closest('.lity-modifications').addClass('lity-hide'); stopYoutubeVideos(); // モーダル閉じた時にYouTube動画を停止 }, 300); }); // モーダル内のクリック操作を制御 $('.lity-content').on('click', function (e) { e.stopPropagation(); }); }); // YouTubeのすべての動画を停止 function stopYoutubeVideos() { players.forEach(player => { if (player) { player.pauseVideo(); // pauseVideo() を使用して音と再生を停止 } }); }