現在HTML→WordPress化をしているのですが、JavaScriptがうまく機能しません。
詳しくいうと、10枚ほどのポップアップ画像を「prev」「next」ボタンで前後の画像と切り替える仕様にしたく、HTMLサイトのJSではchrome,safari共に機能しますが、今WordPress化しようとしている方では、ポップアップ画像が表示されません。
それについてもteratailで質問しているのですが(ご興味を持っていただけましたら、そちらについてもご覧いただけたらと思います)、それ以前にデベロッパーツール上と他媒体上、サイト上で機能が異なるという問題が、今一番私にとって障害となっています。
どういうことかというと、デベロッパーツールで確認しながらクリックしてもちゃんと動いているのですが、safariで開くと、「prev」「next」どちらを押しても1番目のポップアップ画像に飛ばされます(本来なら最初にクリックした画像を基準に前後1枚)
iphoneではそもそも1枚も画像が読み込まれていません。
このように開く場所などによって表示が変わるのは、どのように対処すれば良いのでしょうか、デベロッパーツールがほぼ機能していない状況なので、どなたかご教授していただきたいです。
php
1 <div id="popup-img" class="default"> 2 <img src="<?php echo get_template_directory_uri(); ?>/images/image/1.jpg" alt="ポップアップ"> 3 <div id="popup-close-btn" class="popup-close-btn"><i class="fa-solid fa-xmark"></i></div> 4 <div class="popup-change-btn"> 5 <div id="popup-prev-btn" class="change-btn"><i class="fa-solid fa-chevron-left"></i></i></div> 6 <div id="popup-next-btn" class="change-btn"><i class="fa-solid fa-chevron-right"></i></div> 7 </div> 8 </div> 9 <ul id="containers-p" class="containers-p"> 10 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/1.jpg" alt=""></li> 11 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/2.jpg" alt=""></li> 12 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/3.jpg" alt=""></li> 13 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/4.jpg" alt=""></li> 14 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/5.jpg" alt=""></li> 15 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/6.jpg" alt=""></li> 16 <li class="container-p flex-pc"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/7.jpg" alt=""></li> 17 <li class="container-p flex-pc"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/8.jpg" alt=""></li> 18 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/9.jpg" alt=""></li> 19 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/10.jpg" alt=""></li> 20 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/11.jpg" alt=""></li> 21 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/12.jpg" alt=""></li> 22 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/13.jpg" alt=""></li> 23 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/14.jpg" alt=""></li> 24 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/15.jpg" alt=""></li> 25 <li class="container-p"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/16.jpg" alt=""></li> 26 <li class="container-p flex"><img class="pop_trigger" src="<?php echo get_template_directory_uri(); ?>/images/image/17.jpg" alt=""></li> 27 </ul>
js
1(function($){ 2 let imageSources = ["/images/image/1.jpg","/images/image/2.jpg","/images/image/3.jpg","/images/image/4.jpg","/images/image/5.jpg","/images/image/6.jpg","/images/image/7.jpg","/images/image/8.jpg","/images/image/9.jpg","/images/image/10.jpg","/images/image/11.jpg","/images/image/12.jpg","/images/image/13.jpg","/images/image/14.jpg","/images/image/15.jpg","/images/image/16.jpg","/images/image/17.jpg",]; 3 4 $('#container-p img').each(function() { 5 let path = $(this).attr("src"); 6 imageSources.push(path); 7 }); 8 let sourceIndex = 0; 9 10 $("#containers-p img").on("click", function () { 11 let img_src = $(this).attr("src"); 12 sourceIndex = imageSources.indexOf(img_src); 13 $("#popup-img img").attr("src", img_src); 14 $("#popup-img").toggleClass('active'); 15 }); 16 17 $("#popup-close-btn").on("click", function () { 18 $("#popup-img").removeClass('active'); 19 }); 20 21 22 $('#popup-prev-btn').on("click", function() { 23 sourceIndex = (sourceIndex + imageSources.length - 1) % imageSources.length; 24 updatePopupImage(); 25 }); 26 27 $('#popup-next-btn').on("click", function() { 28 sourceIndex = (sourceIndex + 1) % imageSources.length; 29 updatePopupImage(); 30 }); 31 32 function updatePopupImage() { 33 $("#popup-img img").attr("src", imageSources[sourceIndex]); 34 } 35})(jQuery); 36
回答1件
あなたの回答
tips
プレビュー