我无法从查看器中删除处理程序。
viewer.addHandler('viewport-change', function() {
// do stuff works
});
viewer.addHandler('zoom', function() {
if (viewer.viewport.getZoom() > threshold) {
viewer.removeHandler('viewport-change', function() {
console.log("removed");
});
console.log("Zoom:" + viewer.viewport.getZoom());
}
});
我可以看到带有缩放系数的输出,但是我从未看到“已删除”的输出。 同样,仅添加和删除“视口更改”处理程序也不起作用。 removeAllHandlers似乎可以正常工作,但是我无法仅删除一个处理程序。
我真正想做的是类似滑动效果。如果图像没有放大并且左边缘碰到观看者边框,我想显示下一张图像。也许有更好的方法可以做到这一点。
预先感谢
答案 0 :(得分:0)
为了使removeHandler
工作,它必须与addHandler
使用的功能完全相同,例如:
var viewportChangeHandler = function() {
// do stuff works
};
viewer.addHandler('viewport-change', viewportChangeHandler);
viewer.addHandler('zoom', function() {
if (viewer.viewport.getZoom() > threshold) {
viewer.removeHandler('viewport-change', viewportChangeHandler);
console.log("Zoom:" + viewer.viewport.getZoom());
}
});
也就是说,如果您只想检测滑动,则仅canvas-drag
上的处理程序(加上您自己编写的一些其他逻辑)就足够了。