IE11のみ、jsが一切効かないのでIEの要素の検証でみたところ、以下の部分が構文エラーとなっていました。
const videosId = Array.from(videoIframes).map(item => item.id);
jsファイルの全体はこちらになります。
// Youtube const videoPlayButtons = document.querySelectorAll('.video_play'); const modalCloseButton = document.getElementById('modal_close'); const modal = document.getElementById('modal'); const videoIframes = document.querySelectorAll('.youtube_video'); let currentVideoId = null; // APIでのYouTube動画制御 function onYouTubeIframeAPIReady() { const videosId = Array.from(videoIframes).map(item => item.id); const players = videosId.map(id => { return new YT.Player(id, { videoId: id, playerVars: { loop: 0, rel: 0 } }); }); // モーダル表示&YouTube動画の自動再生 videoPlayButtons.forEach(element => { element.addEventListener('click', (event) =>{ modal.classList.add('shown'); const elementId = element.hash.replace('#', ''); event.preventDefault(); const targetVideo = players.filter(player => { return player.o.id === elementId; }); targetVideo[0].h.style.display = 'block'; targetVideo[0].unMute().playVideo(); currentVideoId = elementId; }); }); // モーダルクローズ&YouTube動画の停止 modalCloseButton.addEventListener('click', (event) => { const targetVideo = players.filter(player => { return player.o.id === currentVideoId; }); targetVideo[0].stopVideo(); document.getElementById(currentVideoId).style.display = 'none'; modal.classList.remove('shown'); }); } // ▲ここまでyoutube再生 // fadein var bodyHeight = document.body.clientHeight; var windowHeight = $(window).height(); if (bodyHeight >= windowHeight) { $(window).scroll(function () { $('.fadein').each(function () { var elemPos1 = $(this).offset().top; var scroll1 = $(window).scrollTop(); var windowHeight1 = $(window).height(); if (scroll1 > elemPos1 - windowHeight1) { $(this).addClass('scrollin'); } }); $('.fadeinimg').each(function () { var elemPos2 = $(this).offset().top; var scroll2 = $(window).scrollTop(); var windowHeight2 = $(window).height(); if (scroll2 > elemPos2 - windowHeight2) { $(this).addClass('scrollin'); } }); }); } else { $('.fadein').each(function () { $(this).addClass('scrollin'); }); $('.fadeinimg').each(function () { $(this).addClass('scrollin'); }); } // PageTop $(document).ready(function(){ $("#pagetop").hide(); $(window).on("scroll", function() { if ($(this).scrollTop() > 100) { $("#pagetop").fadeIn("fast"); } else { $("#pagetop").fadeOut("fast"); } scrollHeight = $(document).height(); scrollPosition = $(window).height() + $(window).scrollTop(); footHeight = $("footer").innerHeight(); //footerの高さ(=止めたい位置) if ( scrollHeight - scrollPosition <= footHeight ) { $("#pagetop").css({ "position":"absolute", "bottom": footHeight + -35 }); } else { $("#pagetop").css({ "position":"fixed", "bottom": "20px" }); } }); $('#pagetop').click(function () { $('body,html').animate({ scrollTop: 0 }, 400); return false; }); });
「// ▲ここまでyoutube再生」の部分までを削除するとそれ以下のfadeinなどは動くので、やはりyoutube再生の部分のコードに問題があるのかと思います。
どこがいけないのか教えていただけないでしょうか。よろしくお願いいたします。
(js初心者です)
回答3件
あなたの回答
tips
プレビュー