2014-04-16 19 views
5

In der neuesten Firefox unter Windows (28.0), wenn ein Zoom-Verhalten wie in this Beispiel angewendet wird, führt ein einzelnes Mausrad Ereignis zu einer großen Zoomänderung: ein Faktor von ~ 1,65 vs ~ 1.18 in Chrome.d3 zoom Unterschied zwischen Chrome und Firefox

auf den Quellcode der Suche:

d3_behavior_zoomDelta = function() { 
    return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1); 
} 

Chrome: {deltaMode: 0, deltaY: -100} -> delta = 100

Firefox: {deltaMode: 1, deltaY: -3 } -> delta = 360

Dies erklärt den Unterschied, aber warum passiert das? Ist das ein Firefox oder ein d3.js Problem?

+0

wird dies in D3 github repo berichtet? – vsync

+0

Ich kann mich nicht erinnern, ob ich das gemeldet habe, es ist schon eine Weile her .. –

Antwort

4

Ich glaube, es ist ein Firefox-Problem. Ich habe es geschafft, indem ich den Zoom auf 10% des aktuellen Wertes beschränkte (und das bei jedem Zoomen zurücksetzte):

var zoom = d3.behavior.zoom() 
    .on("zoom", redraw); 

function redraw() { 
    zoom.scaleExtent([zoom.scale()*0.9, zoom.scale()*1.1]); 
    ... 
} 
Verwandte Themen