前提・実現したいこと
マップ画像をクリックすると画像がポップアップで表示され、ベースとなる地図の上に現在地を示した画像をレイヤー状に重ねて表示したいです。
ベースとなるマップ画像とレイヤー画像は両方とも動的に設定する必要があります。
ポップアップのため使用しているプラグイン「Lity」では同時に2枚の画像を表示できないため、ベースのマップは背景として表示することを想定しています。
getElementsByClassNameで背景を設定したいターゲットが取得ないのですが、どの部分が問題なのか分からず困っています。
発生している問題・エラーメッセージ
modul.js?ver=5.7.1:14 Uncaught TypeError: Cannot read property 'style' of undefined at HTMLAnchorElement.<anonymous> (modul.js?ver=5.7.1:14) at HTMLAnchorElement.dispatch (jquery-3.5.1.min.js?ver=5.7.1:2) at HTMLAnchorElement.v.handle (jquery-3.5.1.min.js?ver=5.7.1:2)
該当のソースコード
JavaScript
1$(document).ready(function(){ 2 $("#map").click(function(){ 3 var map_base = $("#map_base").attr('src'); 4 var map_layer = $("#map_layer").attr('src'); 5 $("#map").attr("href", map_layer); 6 var element = document.getElementsByClassName('lity-content')[0]; 7 element.style.backgroundImage = 'url('+ map_base +')'; 8 element.style.backgroundSize = 'cover'; 9 } 10 }); 11});
試したこと
・elementをconsole.logで表示させようとすると「undefined」と出てしまいます。
・開発者ツールのconsoleに直接「document.getElementsByClassName('lity-content')[0]」と入れると取得できました。
補足情報(FW/ツールのバージョンなど)
ポップアップ表示にはjQueryプラグイン「Lity」を使用しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/11 00:11
2021/05/11 00:50