JS怎么获取SVG的offsetLeft和offsetTop
JS如何获取SVG的offsetLeft和offsetTop;
大家不要纠结全部函数,以下代码只看mousedown函数就行,我在mousedown里面进行alert (this.offsetLeft)和alert (this.offsetTop);;
以下JS能取到id为drag的DIV的offsetLeft和offsetTop,但是id为drag的SVG就得不到,求解!
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
var dragging = false;
var iX, iY;
$("#drag").mousedown(function(e) {
dragging = true;
iX = e.clientX - this.offsetLeft;
iY = e.clientY - this.offsetTop;
alert(this.offsetLeft);
alert (this.offsetTop);
this.setCapture && this.setCapture();
return false;
});
document.onmousemove = function(e) {
if (dragging) {
var e = e || window.event;
var oX = e.clientX - iX;
var oY = e.clientY - iY;
$("#drag").css({"left":oX + "px", "top":oY + "px"});
return false;
}
};
$(document).mouseup(function(e) {
dragging = false;
$("#drag")[0].releaseCapture();
e.cancelBubble = true;
})
})
</script>
------解决思路----------------------
div是HTMLDivElement,svg是SVGSVGElement,svg没有那个属性,自然就获取不到结果了。
你可以查看它们的构造函数,就能看出区别来了。
大家不要纠结全部函数,以下代码只看mousedown函数就行,我在mousedown里面进行alert (this.offsetLeft)和alert (this.offsetTop);;
以下JS能取到id为drag的DIV的offsetLeft和offsetTop,但是id为drag的SVG就得不到,求解!
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
var dragging = false;
var iX, iY;
$("#drag").mousedown(function(e) {
dragging = true;
iX = e.clientX - this.offsetLeft;
iY = e.clientY - this.offsetTop;
alert(this.offsetLeft);
alert (this.offsetTop);
this.setCapture && this.setCapture();
return false;
});
document.onmousemove = function(e) {
if (dragging) {
var e = e || window.event;
var oX = e.clientX - iX;
var oY = e.clientY - iY;
$("#drag").css({"left":oX + "px", "top":oY + "px"});
return false;
}
};
$(document).mouseup(function(e) {
dragging = false;
$("#drag")[0].releaseCapture();
e.cancelBubble = true;
})
})
</script>
------解决思路----------------------
div是HTMLDivElement,svg是SVGSVGElement,svg没有那个属性,自然就获取不到结果了。
你可以查看它们的构造函数,就能看出区别来了。