相关疑难解决方法(0)

如何为d3.behavior.zoom禁用pan?

这个问题看起来很相似,这一个,但我仍然无法弄清楚是否有可能使用d3.behavior.zoom但没有锅能力.换句话说,我只想使用滚轮放大/缩小.

原因是我希望能够刷上"可缩放"区域.

谢谢!

d3.js

28
推荐指数
1
解决办法
1万
查看次数

如何暂时禁用d3.js中的缩放

我正在寻找暂时禁用d3库提供的缩放功能的可能性.我尝试在停用缩放时保存洞穴当前缩放/平移值,并在再次激活缩放时设置缩放/平移值.不幸的是,这不起作用.

这是我创建的代码示例:

var savedTranslation = null;
var savedScale = null;

var body = d3.select("body");

var svg = body.append("svg");

var svgContainer = svg.append("svg:g");

var circle = svgContainer.append("svg:circle")
    .attr('cx', 100)
    .attr('cy', 100)
    .attr('r',30)
    .attr('fill', 'red');

circle.on('click', clickFn);

function clickFn(){
    if (circle.attr('fill') === 'red'){
        circle.attr('fill','blue')
    }
    else if (circle.attr('fill') === 'blue'){
        circle.attr('fill','red')
    }
}; 

svg.call(zoom = d3.behavior.zoom().on('zoom', redrawOnZoom)).on('dblclick.zoom', null);


 function redrawOnZoom(){
     if (circle.attr('fill') === 'red'){
         if (savedScale !== null){
             zoom.scale(savedScale)
             savedScale = null
         }
         if (savedTranslation !== null){
             zoom.translate(savedTranslation)
             savedTranslation = null
         } …
Run Code Online (Sandbox Code Playgroud)

javascript svg behavior zoom d3.js

9
推荐指数
2
解决办法
9563
查看次数

标签 统计

d3.js ×2

behavior ×1

javascript ×1

svg ×1

zoom ×1