大きなマップを必要とするゲームに取り組んでいます。私がしていることは、スクロール可能な div (scrollWindow) の背景に 12k x 12k ピクセルの大きなマップを z-index 1 で設定することです。
その後、Ajax 呼び出しによって JSON データが返され、大きな背景マップ内に多数のクラス (City_Palace) が追加されます。要素の z-index は 9 です。
また、カーソルが背景のマップ上にあるか、その上に描画された都市の 1 つ上にあるかに基づいて、異なることを行うマウスオーバー イベントをいくつか設定しています。ただし、都市の z-index がメイン ウィンドウの z-index よりはるかに高い場合でも、スクロール可能なウィンドウが「上」にあるため、都市のマウスオーバーに対してイベントが発生することはありません。
マウスイベントに関して、jqueryがどのdivが「上」にあるかを判断するために使用される基準は何ですか? z-indexはそうではないようです。
ここにいくつかのコードがあります:
CSS:
#scrollWindow {
width: 1970px;
height: 900px;
overflow: scroll;
border: solid black 3px;
position: absolute;
z-index:1;
}
.City_Palace {
height: 20px;
width: 20px;
position: absolute;
z-index: 9;
background-image: url("../Images/City_Palace.png");
background-size: 100% 100%;
}
Jクエリ:
$('.City_Palace').mouseover(function() {
alert("city classes on top");
});
$("#scrollWindow").mousemove(function(e){
alert("scroll window on top");
});
HTML の生成方法は次のとおりです。
<div id="scrollWindow" class="ui-widget-content" style="width: 2105px;">
<img id="img" src="../Images/fullSizeMap.png">
<div class="City_Palace" value="coast" style="left: 780px; top: 540px;"></div>
</div>
どういうわけか、親子関係が z-index をオーバーライドしていると推測しています。これを修正する方法について何か提案はありますか? ありがとう!