1
嗨如果有人可以幫助我,這將是偉大的。我做了一個縮放鍋d3.js這是工作的罰款:拖動問題與d3.js
function zoom() {
var e = d3.event
var scale = d3.event.scale;
canvas.save();
canvas.clearRect(0, 0, width, height);
canvas.beginPath();
canvas.translate(e.translate[0], e.translate[1]);
canvas.scale(scale, scale);
draw();
canvas.restore();
}
那麼我想只畫布區域內的圖像,我做了這樣的:
function zoom() {
var scale = d3.event.scale;
var e = d3.event,
tx = Math.min(0, Math.max(e.translate[0], width - imgBG.width * e.scale)),
ty = Math.min(0, Math.max(e.translate[1], height - imgBG.height * e.scale))
canvas.save();
canvas.clearRect(0, 0, width, height);
canvas.beginPath();
canvas.translate(tx, ty);
canvas.scale(scale, scale);
draw();
canvas.restore();
}
這裏是一個工作代碼:https://jsfiddle.net/ux7gbedj/
問題是:例如,當小提琴被加載,我開始從左到右拖動,讓說2次,圖像不移動這是很好,但然後當我嘗試從右向左拖動我必須至少拖動3次才能開始移動ag ain,所以我認爲我沒有做一些非常正確的事情。