我有一个带有鼠标滚轮滚动事件的Highcharts组件。
除firefox之外,所有浏览器都运行正常。在firefox中,mousewheel事件会触发Highcharts组件和整个窗口中的滚动。我试图添加event.preventDefault()和event.stopPropagation(),但没有解决问题。滚动Highcharts组件时,是否有办法防止整个窗口滚动?
答案 0 :(得分:1)
出现问题是因为DOMMouseScroll
和mousewheel
事件现在已被弃用,并由新的wheel
事件取代,该事件在所有浏览器中均有效。您需要在代码中替换两件事才能使其正常工作。
首先,请在此处更改事件名称:
H.addEvent(chart.container, 'wheel', function(event) {
然后在您的wheel
事件函数主体中,将增量分配替换为:
delta = e.detail || -(e.deltaY / 120);
delta = delta < 0 ? 1 : -1;
现在,它在所有浏览器中的工作方式都相同。
实时示例: http://jsfiddle.net/d3r8pb7c/
API参考:
https://developer.mozilla.org/en-US/docs/Web/Events/wheel
https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel
https://developer.mozilla.org/en-US/docs/Web/Events/DOMMouseScroll