2014-04-16 15 views
5

Trong Firefox mới nhất trên Windows (28.0), khi hành vi thu phóng được áp dụng như trong ví dụ this, một sự kiện bánh xe chuột dẫn đến thay đổi thu phóng lớn: hệ số ~ 1,65 so với ~ 1,18 trong Chrome.d3 zoom khác biệt giữa Chrome và Firefox

Nhìn vào mã nguồn:

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

Điều này giải thích sự khác biệt, nhưng tại sao điều này lại xảy ra? Đây có phải là vấn đề về Firefox hay d3.js không?

+0

được báo cáo trong D3 github repo? – vsync

+0

Tôi không nhớ nếu tôi báo cáo điều này, nó đã được một thời gian .. –

Trả lời

4

Tôi tin rằng đó là sự cố Firefox. Tôi đã giải quyết vấn đề này bằng cách giới hạn mức thu phóng trong khoảng 10% giá trị hiện tại (và đặt lại mỗi lần bạn phóng to):

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

function redraw() { 
    zoom.scaleExtent([zoom.scale()*0.9, zoom.scale()*1.1]); 
    ... 
} 
Các vấn đề liên quan