前提・実現したいこと
jQuery RWD Image Maps を使用して、イメージマップのレスポンシブ化を行っていますが、以下のソースですとIE11でしか動作しません。
メジャーブラウザで動かしたいです。どこを確認するですとか、アドバイスをよろしくお願いいたします。
発生している問題・エラーメッセージ
Win8.1とiPhoneでテストしています。Chrome/FirefoxとiOSでは画面を拡大縮小してもリンクエリアが追従されませんが、IE11ですとリンクエリアが追従されます。
該当のソースコード
HTML、CSS
1<!DOCTYPE html> 2<html> 3<head> 4<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1" /> 5<style> 6 html, 7 body { 8 margin: 0; 9 padding: 0; 10 } 11 img { 12 width: 100%; 13 height: auto; 14 } 15</style> 16</head> 17<body> 18<div> 19<img src="https://example.com/maptest.jpg" width="727" height="250" usemap="#ImageMap" alt="" /> 20<map id="ImageMap" name="ImageMap"> 21 <area shape="rect" coords="185,13,331,55" href="https://example.com/" title="" alt="" /> 22 <area shape="rect" coords="14,84,336,237" href="https://example.com/" title="" alt="" /> 23 <area shape="rect" coords="366,25,474,100" href="https://example.com/" title="" alt="" /> 24 <area shape="rect" coords="491,120,713,235" href="https://example.com/" title="" alt="" /> 25</map> 26</div> 27<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 28<script src="https://example.com/js/jquery.rwdImageMaps.min.js"></script> 29<script> 30$(document).ready(function(e) { 31 $('img[usemap]').rwdImageMaps(); 32}); 33</script> 34</body> 35</html>
ここにより詳細な情報を記載してください。
テストサイトですと
http://mattstow.com/experiment/responsive-image-maps/rwd-image-maps.html
私の手元のChrome(バージョン: 76.0.3809.100)では動いているように見えますが、質問者さんの環境ではどうでしょうか。
はい。そちらのテストサイトでは動いて見えます(同じくChrome76.0.3809.100)が、私の上記ソースでは動きません。テストサイトのソースと見比べてソースを見直すのがいいでしょうか?
そうですね。正常動作が確認できているコードや環境がある以上は、
何かしら設定が足りてないとか、画像のサイズや解像度(解像度まで追う必要があるかは微妙ですがmetaで指定しているので)とかまで確認する必要がありそうに思います
先のテストサイトのソースと画像をこちらのローカルへ持ってきてテストしましたが、ChromeでもIE11でも動きませんでした。何か設定が違うように思うので調べてみます。何かわかりましたら、アドバイスいただければ幸いです。
エラーは出ていませんか?デベロッパーツールで確認してみてください。https://eng-entrance.com/javascript-display-error
IE11のコンソールで「SEC7111: HTTPS セキュリティが http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js によって危害を受けています」という赤字のエラーが出ていました。(初めて使ったのですが、エラーは赤字だけでいいのでしょうか?)
そこですね。
jQueryCDNから読み込むjQuery本体の記述をコピペしてきてください。
https://code.jquery.com/
動く環境でなく、動かない環境のエラーを確認してください。
kei344様へ、動かないChromeの環境でのコンソールでは、以下の4つのエラーが出ていました。
noname1.html:1 Mixed Content: The page at 'https://example.com/noname1.html' was loaded over HTTPS, but requested an insecure script 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'. This request has been blocked; the content must be served over HTTPS.
jquery.rwdImageMaps.min.js:11 Uncaught ReferenceError: jQuery is not defined
at jquery.rwdImageMaps.min.js:11
(anonymous) @ jquery.rwdImageMaps.min.js:11
noname1.html:47 Uncaught ReferenceError: $ is not defined
at noname1.html:47
(anonymous) @ noname1.html:47
noname1.html:1 Unchecked runtime.lastError: The message port closed before a response was received.
m.ts10806様へ、権限が無いとのことで https://code.jquery.com/ へ入れませんでした。
>権限が無いとのこと
もうそれに尽きる気がします。ネット環境が特殊。
とりあえず http:// → https:// に変更してみてください。
回答1件
あなたの回答
tips
プレビュー