#361·Snap.svg

自定义 viewBox、宽度和高度时,需要对拖动事件距离进行缩放

作者: nicolaitanes创建于 2015年4月2日更新于 2024年6月6日

if (this.setImageCoordinateSystem !== undefined) { // setImageCoordinateSystem is a new feature in 0.3.0 if (this.setImageCoordinateSystem !== undefined) { -this.setImageCoordinateSystem({

  • viewBox: "0 0 " + internal_w + " " + internal_h,
  • width: pixel_w,
  • height: pixel_h -}); } var element = this.element; var dragi = this.dragi; var e = this.e; var x = e.pageX; var y = e.pageY; var scrollX = element.scrollLeft; var scrollY = element.scrollTop; var o = null; var next = null; var parent = null; var display = null; var toplevel = null; var xscale, yscale; while (toplevel.nodeName !== 'svg') { toplevel = toplevel.parentNode; } xscale = toplevel.viewBox.baseVal.width / toplevel.clientWidth; yscale = toplevel.viewBox.baseVal.height / toplevel.clientHeight; // glob.win.opera && parent.removeChild(node); // node.style.display = "none"; // o = dragi.el.paper.getElementByPoint(x, y); eve("snap.drag.over." + dragi.el.id, dragi.el, o); x += scrollX; y += scrollY; eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el.drag.y, x, y, e); eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, xscale(x - dragi.el.drag.x), yscale(y - dragi.el._drag.y), x, y, e); } }, dragUp = function (e) { var element = this.element; var dragi = this.dragi; var e = this.e; var x = e.pageX; var y = e.pageY; var scrollX = element.scrollLeft; var scrollY = element.scrollTop; var o = null; var next = null; var parent = null; var display = null; var toplevel = null; var xscale, yscale; while (toplevel.nodeName !== 'svg') { toplevel = toplevel.parentNode; } xscale = toplevel.viewBox.baseVal.width / toplevel.clientWidth; yscale = toplevel.viewBox.baseVal.height / toplevel.clientHeight; // glob.win.opera && parent.removeChild(node); // node.style.display = "none"; // o = dragi.el.paper.getElementByPoint(x, y); eve("snap.drag.over." + dragi.el.id, dragi.el, o); x += scrollX; y += scrollY; eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el.drag.y, x, y, e); eve("snap.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, xscale(x - dragi.el.drag.x), yscale(y - dragi.el._drag.y), x, y, e); } }; return Snap; };

内容来源: adobe-webplatform/Snap.svg