我们有一个大图像设置为背景的 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背景
我们想要的是在视口中的图像中居中一个已知点 (x,y)。(或以已知点为中心?)
点 (x,y) 将是房间的位置。当用户单击列表中的任何房间时,视口应平移到房间的位置。所有房间都有一些预定义的(x,y)位置。(类似于谷歌地图如何将其地图集中在标记位置上)。此外,如果房间/点位于地图的边缘,将其带入视口也足够了。
无法弄清楚如何使视口部分居中。有什么线索吗?
注意 1:在下面的示例中,用户单击“房间 3”,“房间 3”被平移到视图中并在视口中居中。
注意 2:房间 3 没有准确显示在视口的中心(假设是),只是为了清楚起见粗略的图片。示例中也未显示房间标记。