javascript - 如何使用鼠标中轮按钮拖动 Openseadragon 画布
问题描述
我正在使用带有 fabricjs 覆盖的 Openseadragon 库。我有一种情况,我想拖动画布,而不是鼠标主按钮,我想用鼠标中键拖动它。谁能帮我得到想要的行为?
解决方案
OpenSeadragon 没有相应的标志,但您可以使用 MouseTracker 轻松构建它。这是一个示例(从内存中编码,未经测试,但它应该给你的想法)。
var drag;
var mouseTracker = new OpenSeadragon.MouseTracker({
element: viewer.container,
nonPrimaryPressHandler: function(event) {
if (event.button === 1) { // Middle
drag = {
lastPos: event.position.clone()
};
}
},
moveHandler: function(event) {
if (drag) {
var deltaPixels = drag.lastPos.minus(event.position);
var deltaPoints = viewer.viewport.deltaPointsFromPixels(deltaPixels);
viewer.viewport.panBy(deltaPoints);
drag.lastPos = event.position.clone();
}
},
nonPrimaryReleaseHandler: function(event) {
if (event.button === 1) {
drag = null;
}
}
});
编辑:我在上面的示例代码中有一个错误;固定的。
推荐阅读
- php - 如何获取数组名称。Blade.Laravel.PHP
- google-chrome - 谷歌浏览器日志网络通话时间计算
- python - 我想更改我电脑的壁纸,但它变成了黑色
- perl - Plack 如何调试请求?
- javascript - 在地图中调用异步函数
- c# - PowerPoint ThemeColorScheme 派生的颜色/色调
- intellij-idea - 在 intellij 中更改 testng xml 文件模板
- python - sec.gov 使用嵌套的 for 循环进行抓取,遇到 Unicode 错误
- javascript - JQuery .load() 后跟 .css() 修改
- firebase - 如何在本地主机上使用缓存控制标头测试 Firebase 函数?