[英]svgPanZoom: only pan using middle mouse button
有没有简单的方法可以仅在按下鼠标中键时平移? 默认行为是平移按下的鼠标按钮(或任何触摸)。
前beforepan
看起来很有希望,但是您只能获得旧的和新的职位,而不知道是什么触发了平移。
我可能可以使用customEventsHandler
使其正常工作,但是对于几个简单的检查来说,似乎需要做很多额外的工作。
在对元素调用svgPanZoom
之前,可以绑定mousedown事件并调用stopImmediatePropagation
。
document.getElementById('svg-id').onmousedown = function (e) { if (e.button !== 1) e.stopImmediatePropagation(); } svgPanZoom('#svg-id', { zoomEnabled: true, controlIconsEnabled: true, fit: true, center: true, minZoom: 0.1 });
#container{ width: 300px; height: 300px; border:1px solid black; }
<script src="https://ariutta.github.io/svg-pan-zoom/dist/svg-pan-zoom.js"></script> <div id="container"> <svg id="svg-id" height="300px" xmlns="http://www.w3.org/2000/svg"> <g> <g stroke="#000" fill="#FFF"> <rect x="10" y="10" width="120" height="120" fill="red"/> <path d="M 10 10 L 130 130 Z"/> </g> </g> </svg> </div>
不,没有简单的方法可以更改处理平移的事件。 您基本上有2个解决方案:
customEventsHandler
。 是的,这并非微不足道,但您会获得不更改核心的好处。 这应该非常简单,因为您可以使用panBy
并仅在最后一个鼠标位置和当前鼠标位置之间传递增量(而无需担心SVG当前缩放/缩放)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.