diff --git a/draftlogs/7067_fix.md b/draftlogs/7067_fix.md new file mode 100644 index 00000000000..9924da75cb8 --- /dev/null +++ b/draftlogs/7067_fix.md @@ -0,0 +1 @@ +- Fix wrong scrolling behavior for legend [[#7067](https://github.com/plotly/plotly.js/pull/7067)] diff --git a/src/components/legend/draw.js b/src/components/legend/draw.js index 8c7907358a1..6a8106bbcc1 100644 --- a/src/components/legend/draw.js +++ b/src/components/legend/draw.js @@ -337,7 +337,7 @@ function drawOne(gd, opts) { legend.on('wheel', function() { scrollBoxY = Lib.constrain( legendObj._scrollY + - ((d3.event.deltaY / scrollBarYMax) * scrollBoxYMax), + ((d3.event.deltaY / scrollBoxYMax) * scrollBarYMax), 0, scrollBoxYMax); scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio); if(scrollBoxY !== 0 && scrollBoxY !== scrollBoxYMax) { diff --git a/test/jasmine/tests/legend_scroll_test.js b/test/jasmine/tests/legend_scroll_test.js index 66502ba2236..546ee62b39f 100644 --- a/test/jasmine/tests/legend_scroll_test.js +++ b/test/jasmine/tests/legend_scroll_test.js @@ -101,14 +101,15 @@ describe('The legend', function() { var initialDataScroll = getScroll(gd); var wheelDeltaY = 100; var finalDataScroll = Lib.constrain(initialDataScroll + - wheelDeltaY / scrollBarYMax * scrollBoxYMax, + ((wheelDeltaY / scrollBoxYMax) * scrollBarYMax), 0, scrollBoxYMax); legend.dispatchEvent(scrollTo(wheelDeltaY)); - - expect(getScroll(gd)).toBe(finalDataScroll); + + var dataScroll = getScroll(gd); + expect(dataScroll).toBeCloseTo(finalDataScroll, 3); expect(scrollBox.getAttribute('transform')).toBe( - 'translate(0,' + -finalDataScroll + ')'); + 'translate(0,' + -dataScroll + ')'); }); function dragScroll(element, rightClick, mainClick) {