在 HTML5 中(我认为?),当鼠标悬停在页面上的 Canvas 元素上时,它们会中断滚动。
我使用 Chart.js 生成了一个页面,上面有很多图表,所有图表都呈现在一个元素内。
由于页面很长(垂直),用户经常会向上/向下滚动页面以查看各种图表。每次他们滚动到一个 上时,他们都必须将鼠标移开才能继续滚动,这很不方便。
有什么办法可以覆盖canvas元素对鼠标滚轮事件的控制吗?我没有与鼠标滚轮相关的功能。在此期间,我建议用户使用键盘快捷键。
一如既往地感谢这个非常有帮助的社区。如果我找到解决方法或解决方案,我会在此处发布。
最佳答案
如果你只是使用 Chart.js ,我认为 Chart.js 不会劫持 wheel 事件。但是如果你使用 chartjs-plugin-zoom在一起,车轮事件将被劫持。
(chartjs-plugin-zoom 是 Chart.js 的缩放和平移插件)
chartjs-plugin-zoom 在滚动时劫持鼠标滚轮。如果您希望用户使用鼠标滚轮向上或向下滚动页面,而不是放大或缩小图表,您可以从图表中取消注册滚轮事件,如下所示:
var myChart = new Chart(ctx, {...});
myChart.ctx.canvas.removeEventListener('wheel', myChart._wheelHandler);
您可以在需要时重新添加事件处理程序:
myChart.ctx.canvas.addEventListener('wheel', myChart._wheelHandler);
关于javascript - 滚动页面时如何禁用 Canvas 元素劫持鼠标滚轮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44487554/