我已經在svg-Element中使用d3.js的mercator函數實現了一個map。 該地圖僅代表特定的城市 - 城市地圖以外的所有內容與我的項目無關。如何限制在mercator地圖上的d3.js拖動行爲
現在我想在這張地圖上實現一些像zoom()和drag()這樣的函數。
但我找不到任何解決方案,用我的mercator-map處理drag()函數 - 我無法限制轉換的區域。 (用戶不應該能夠拖動的城市地圖之外地圖)
對於普通SVG元素這個工程:
var drag = d3.behavior.drag()
.on("drag", dragmove);
function dragmove(d) {
var x = Math.max(0, Math.min('width-of-svg-element', d3.event.x));
var y = Math.max(0, Math.min('height-of-svg-element', d3.event.y));
d3.select(this)
.attr("transform", "translate(" + x + "," + y + ")");
}
但它不爲我的墨卡托地圖工作。
請幫我:(
在此先感謝
這裏是一個小例子: https://jsfiddle.net/c55w7u9e/
我的本意是,應該有沒有可能爲用戶拖動紅色圓圈(在這個例子中,但在我的項目中的地圖)svg元素外...
你有個演出的例子嗎?最好在JSFiddle上? – thatOneGuy
https://jsfiddle.net/c55w7u9e/ – GenXGer
如果我的答案解決了問題,請選擇綠色的勾號。如果沒有,讓我知道,並試圖解決它 – thatOneGuy