背景として大きな画像が設定された div があります。ほとんどの場合、背景画像は div よりも大きくなります。したがって、div の背景がパンします。(フィドルを参照)。
画像は部屋を配置した平面図です。
部屋は、位置 (x,y) を持ついくつかのマーカーで示されます。(今のところ、例には示されていません)
<div class="bg-img"></div>
<p>
<input type="button" value="center on a point" id="center"/>
</p>
div.bg-img {
background-image: url(http://www.bumc.bu.edu/supportingbusm/files/2012/01/Typical-Floor-Plan.jpg);
background-position: 0 0;
background-repeat: no-repeat;
background-color: blue;
border: 1px solid #aaa;
width: 450px;
height: 450px;
margin: 25px auto;
}
divの背景を移動するために使用されるコードは@ jQueryです - div css backgroundをドラッグします
私たちが望むのは、ビューポートの画像内の既知の点 (x,y) を中央に配置することです。(または既知のポイントを中心に視点を配置しますか?)
点 (x,y) が部屋の位置になります。ユーザーがリストからいずれかの部屋をクリックすると、ビューポートは部屋の場所にパンする必要があります。すべての部屋には、事前に定義された (x,y) 位置があります。また、部屋/ポイントがマップの端にある場合は、それをビューポートに持ってくるだけでも十分です。
ビューポート パーツを中央に配置する方法がわかりませんでした。どんな手掛かり?
注 1 : 以下の例では、ユーザーが「部屋 3」をクリックすると、「部屋 3」がビューにパンされ、ビューポートの中央に配置されます。
注 2 : ルーム 3 はビューポートの中心に正確に表示されていません (そうであると仮定します)。また、ルーム マーカーはこの例には示されていません。