将 vis 网络图配置为仅在捏合时缩放,而不是在鼠标滚动时缩放

abu*_*lka 7 vis.js vis.js-network

我有一个由 vis.js 创建的大型网络图,它在浏览器中是 100% 宽并且非常高,因此需要向下滚动页面才能看到全部内容 - 我希望我的页面像世界上大多数其他网页一样运行 - 但是当我滚动时,vis.js 会缩放,而不是滚动页面。如何关闭滚动缩放,但仍允许捏合(或按住按键 + 滚动)?

当然,我可以使用此选项关闭缩放 - 并添加一些内置缩放按钮:

var options = {
  interaction: {
    zoomView: false,
    navigationButtons: true,
  }
};
Run Code Online (Sandbox Code Playgroud)

但这并不理想。它要求用户滚动到页面底部才能访问缩放控件。另外,我想要一个更易于访问的缩放功能(是的,我知道,我刚刚关闭了更易于访问的缩放功能)。可见时间线图似乎比网络图有更多的缩放方法。

总结一下:我希望对图表禁用鼠标滚轮/触控板滚动,从而提供自然的整个页面滚动行为,再加上捏合(或按住按键+滚动)进行缩放。

Yak*_*ovL 1

我不认为有一些特定于网络的解决方案。您必须检测鼠标滚动并相应地处理它,如下所示:

container.addEventListener("wheel", function(e){
    if (e.stopPropagation) e.stopPropagation();
    return false;
})
Run Code Online (Sandbox Code Playgroud)

为了支持旧浏览器,您应该使用 DOMMouseScrollmousewheel事件。

不幸的是,我手边没有鼠标,所以无法真正为您测试这一点,但这里有一个游乐场,您可以自己执行此操作: https: //jsfiddle.net/9m433scr/8/