質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

334閲覧

デベロッパーツールでは正常なのにsafariなどで開くとうまく機能しない

matsu33

総合スコア13

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2022/06/01 16:02

編集2022/06/02 18:10

現在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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2022/06/02 00:42

ソースがないとなんとも回答のしようがありません。 今の情報で可能性を考えると「ちゃんと書いてない」か「ブラウザが対応していない」か 「試した環境がおかしい」などでしょうか。 codepenなどどこか動作が確認できるサイトにソースをアップして例示されるとよいでしょう 試した動作環境のOSやブラウザのバージョンを記載すると回答の精度が上がると思います
Lhankor_Mhy

2022/06/02 01:21

コードをご提示ください。
Lhankor_Mhy

2022/06/02 01:28 編集

なお、『ご興味を持っていただけましたら、そちらについてもご覧いただけたらと思います』とのことですが、興味を持って数日前に回答している方がいらっしゃるようですので、気づいていなかったのであれば応答をしてください。 (もちろん強制ではありません) 回答があったことには気づいているが敢えて無視をしている、という話であれば、この質問に「時間の無駄なので回答には応答しません」と記述しておくと、回答者も回答すべきかどうか判断がしやすいので、お互いに時間の無駄がなくなって親切かもしれません。 (もちろん強制ではありません)
KazuhiroHatano

2022/06/02 01:45

全く同じコードが動いたり動かなかったりする場合は、 キャッシュの有無で一部要素のloadイベントが発生したりしなかったり、 スクリプトの実行のタイミングが前後したりといったことが考えられますが WordPress移行前はそんなことはなかったというのであれば 移行作業に不備があるのではないかと思います
matsu33

2022/06/02 18:23

コードの追加をしました。現在はfunctions.phpに<?phpとしか入力していません。重ねての質問なのですが、WordPressでのこのJSのimg srcにも<?php echo get_template_directory_uri(); ?>をつけた方が良いのでしょうか Lhankor_Mhy様 前回の質問に回答をいただいたものの、この質問内容にある通り、コードが間違っているのか、コードは合っているが私の環境のせいでうまく反映されていないのかが分からず、本来は正しいコードを回答してくださったのに「できませんでした」と答えるのが申し訳なくなり、どう返信すれば良いか分からずに、この質問が解決してから返信しようと考えていました。自己中心的な判断でした。 デベロッパーツールはchromeの右上の3つの点からそのほかのツールのデベロッパーツールです
Lhankor_Mhy

2022/06/03 00:33

かしこまりました。余計なことを申し上げました。失礼いたしました。
guest

回答1

0

ベストアンサー

 ご質問は、「Chrome Devtools で確認したものと、iOS Safari 実機で確認したものとの、動作が違うことについて何とかしたい」ということですよね?

 それは何ともならないです。

Think of Device Mode as a first-order approximation of how your page looks and feels on a mobile device. With Device Mode you don't actually run your code on a mobile device. You simulate the mobile user experience from your laptop or desktop.

Simulate mobile devices with Device Mode - Chrome Developers

 とあるように、Chrome Devtools での表示は、あくまで Chrome での表示になりますので、Safari での表示ではないです。デバイスモードは、UA偽装、タッチエミュレーション、解像度・画面サイズ調整などをしたシミュレーションです。

 ですので、実機で確認するしかないです。

 なお、Chrome 以外のブラウザでも 最新版Edge や Opera については、中身が Chrome と同じなので問題が起きにくい傾向があります。
Blink (レンダリングエンジン) - Wikipedia

 Android は Chrome を使っているユーザーがかなり多いため、問題が起きにくいです。Firefox はアップデートが比較的早いため最新の機能を使わない限り問題が起きにくいです。またシェアが小さい上にユーザーに変わり者が多く多少の問題はユーザー自身で対処するので、ある程度は無視していいかと思います。

 ということで、Chrome のデバイスモードでチェックした後は、MacOS Safari と iOS Safari をチェックすれば、完全ではないですが大きな問題は起きにくいだろうと思います。

投稿2022/06/03 00:58

Lhankor_Mhy

総合スコア36074

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問