我使用點擊操作在Raphael.js畫布中創建圓圈。當畫布在網站的原點繪製時,它工作正常。 但是,當我將它移動到中間時,會發生某種類型的脫銷,並且只有當您單擊畫布的右側時,纔會在畫布左側繪製圓圈。即使我有我的監聽行動,畫布,而不是DIV的就是追加到,這裏是代碼:當DOM元素居中時修復Raphael.js中的畫布偏移量
<body>
<div id="container"></div>
</body>
這裏是JS:
var canvas = Raphael("container", 500, 500);
var ourCanvas = $('svg').last();
ourCanvas.attr("id", "canvas");
var canvasHandler = $("#canvas");
//We create a div with a class to append our canvas
var containerHandler = $("#container");
var circleClass = $("circle.quincy");
var justDragged = false;
canvasHandler.mouseup(function (e) {
var mouseX = e.pageX;
var mouseY = e.pageY;
makeCircle(mouseX, mouseY);
});
function makeCircle(mouseX, mouseY) {
var radius;
var fill;
var thisCirclesID = String(new Date().getTime());
var circle = canvas.circle(mouseX, mouseY, 50).attr({
fill: "hsb(.8, 1, 1)",
stroke: "none",
opacity: .5,
});
}
這裏是一個JSFiddle
我不知道我使用事件位置的方式是否正確。任何建議都是值得歡迎的。
感謝
中號
似乎沒有爲我做任何事情,我只是得到一個灰色的盒子,沒有圈子。 – Ian
如果點擊靠近左側的邊緣,則會看到部分出現在另一側的圓圈。我使用offsetParent方法修復了這個問題。這裏是舊的http://jsfiddle.net/mauricioSanchez/n2N3e/,這裏是一個新的http://jsfiddle.net/mauricioSanchez/Cys95/ – mauricioSanchez