给定具有d3.behavior.zoom且确定的scaleExtent的SVG,将通过鼠标滚轮事件进行缩放:


如果比例尺最小(即SVG完全缩小),或者
如果比例尺最大(即SVG已完全放大)


如何忽略缩放事件并使鼠标滚轮事件正常进行(因此使页面上下滚动?)

最佳答案

不要在评论中清除,但是类似或类似的内容可能会起作用:

JS:

伪放大

var zoomEnd = false;
if(zoom < min ){ zoom = min, var zoomEnd = true; }
if(zoom > max){ zoom = max, var zoomEnd = true; }


检查zoomEnd = true(即:缩放处于最小或最大缩放):

if(zoomEnd =true)
{
    d3.select('svg').classed('scroll', true)
} else{
    d3.select('svg').classed('scroll', false))
}


CSS:

.scroll{
overflow: scroll;
}


请记住,您必须在每一帧都执行此检查,因此在刻度/更新功能中,它始终会检查缩放是否超出范围,从而带来滚动功能

关于javascript - 如果比例最大/最小,如何忽略d3.js缩放行为?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29287933/

10-15 13:14