@@ -253,36 +253,36 @@ module.exports = function draw(gd) {
253253
254254 scrollBox . call ( Drawing . setClipUrl , clipId ) ;
255255
256- if ( gd . firstRender ) {
256+ if ( gd . firstRender ) scrollHandler ( scrollBarY , scrollBoxY ) ;
257+
258+ legend . on ( 'wheel' , null ) ; // to be safe, remove previous listeners
259+ legend . on ( 'wheel' , function ( ) {
260+ scrollBoxY = Lib . constrain (
261+ scrollBox . attr ( 'data-scroll' ) -
262+ d3 . event . deltaY / scrollBarYMax * scrollBoxYMax ,
263+ - scrollBoxYMax , 0 ) ;
264+ scrollBarY = constants . scrollBarMargin -
265+ scrollBoxY / scrollBoxYMax * scrollBarYMax ;
257266 scrollHandler ( scrollBarY , scrollBoxY ) ;
267+ d3 . event . preventDefault ( ) ;
268+ } ) ;
258269
259- legend . on ( 'wheel' , null ) ;
260- legend . on ( 'wheel' , function ( ) {
261- scrollBoxY = Lib . constrain (
262- scrollBox . attr ( 'data-scroll' ) -
263- d3 . event . deltaY / scrollBarYMax * scrollBoxYMax ,
264- - scrollBoxYMax , 0 ) ;
265- scrollBarY = constants . scrollBarMargin -
266- scrollBoxY / scrollBoxYMax * scrollBarYMax ;
267- scrollHandler ( scrollBarY , scrollBoxY ) ;
268- d3 . event . preventDefault ( ) ;
269- } ) ;
270+ // to be safe, remove previous listeners
271+ scrollBar . on ( '.drag' , null ) ;
272+ scrollBox . on ( '.drag' , null ) ;
270273
271- scrollBar . on ( '.drag' , null ) ;
272- scrollBox . on ( '.drag' , null ) ;
273- var drag = d3 . behavior . drag ( ) . on ( 'drag' , function ( ) {
274- scrollBarY = Lib . constrain (
275- d3 . event . y - constants . scrollBarHeight / 2 ,
276- constants . scrollBarMargin ,
277- constants . scrollBarMargin + scrollBarYMax ) ;
278- scrollBoxY = - ( scrollBarY - constants . scrollBarMargin ) /
279- scrollBarYMax * scrollBoxYMax ;
280- scrollHandler ( scrollBarY , scrollBoxY ) ;
281- } ) ;
274+ var drag = d3 . behavior . drag ( ) . on ( 'drag' , function ( ) {
275+ scrollBarY = Lib . constrain (
276+ d3 . event . y - constants . scrollBarHeight / 2 ,
277+ constants . scrollBarMargin ,
278+ constants . scrollBarMargin + scrollBarYMax ) ;
279+ scrollBoxY = - ( scrollBarY - constants . scrollBarMargin ) /
280+ scrollBarYMax * scrollBoxYMax ;
281+ scrollHandler ( scrollBarY , scrollBoxY ) ;
282+ } ) ;
282283
283- scrollBar . call ( drag ) ;
284- scrollBox . call ( drag ) ;
285- }
284+ scrollBar . call ( drag ) ;
285+ scrollBox . call ( drag ) ;
286286 }
287287
288288
0 commit comments