2014-04-15 79 views
1

我正在實現一個簡單的地圖。地圖由視口和地圖圖像本身組成,實際上它是一個帶有背景圖像的div。 視口相對定位,並且溢出隱藏,並且地圖圖像絕對位於視口內。 可以使用鼠標在視口內移動地圖,並且地圖也可以放大(只需增加圖像的大小,因爲圖像是.svg)當孩子集中注意力時,防止瀏覽器移動元素

地圖上有一些用戶可以懸停的點以便獲得關於這一觀點的工具提示的描述。這些要點也可以通過標籤來關注它們。 積分是地圖圖像div的子元素,並且絕對按百分比定位(在地圖縮放時保留正確的位置)

當某個點聚焦時,我想要移動地圖以便點位於視口中間。我已經寫了這個代碼,它工作正常。但是,如果某個點位於視口之外(不可見),則瀏覽器會自動嘗試移動地圖,以便點可見。我不希望它這樣做,因爲它干擾了我爲編寫地圖移動而編寫的代碼。這與滾動無關。

我使用jQuery並嘗試過e.preventDefault()並返回false;在地圖點的焦點處理程序中,但都不起作用。 甚至有可能阻止這種行爲?提前

感謝

+1

請張貼使用目前正在使用的代碼,並考慮創建一個虛擬的JSFiddle讓人們爲你編輯。 –

回答

0

我發現,地圖視口的滾動值是由瀏覽器爲用戶帶來的地圖地點進入視野被設置。當我通過設置頂部和左側位置來移動地圖時,這是導致問題的原因。

的解決方案是在.scroll()事件偵聽器添加到視域和剛剛成立的scrollTop的和scrollLeft值設置爲0時觸發事件

相關問題