0
我想檢測移動時鼠標在持有者div中的位置。但是,當我將mose移動到持有者div內的SVG元素上時,它將相對於此元素而不是持有者div。任何人都知道我如何能夠防止這種情況?下面看到我使用的代碼:您應該使用event.currentTarget
,而不是event.target
鼠標移動時div的鼠標移動改變鼠標移動時的元素
var R = Raphael("holder", canw, canh);
$('#holder').mousemove(function (event){
if(mousemove){
position = getPosition(event);
console.log(position.x+" - "+position.y);
}
});
function getPosition(e) {
//this section is from http://www.quirksmode.org/js/events_properties.html
console.log(e);
var targ;
if (!e)
e = window.event;
if (e.target)
targ = e.target;
else if (e.srcElement)
targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
console.log(targ);
// jQuery normalizes the pageX and pageY
// pageX,Y are the mouse positions relative to the document
// offset() returns the position of the element relative to the document
var x = e.pageX - $(targ).offset().left;
var y = e.pageY - $(targ).offset().top;
return {"x": x, "y": y};
};
<div id="holder"></div>
謝謝!這就是訣竅。 –