我正在尝试使用D3将缩放功能合并到Mike Bostock的旋转地球仪中。只要地球旋转或处于“动画”状态,缩放功能就可以像超级按钮一样工作。但是,我遇到以下问题:

(1)当我按下滚轮时,一旦按下鼠标,甚至缩放功能就被禁用,这不是理想的效果。我已经缩小了问题的范围,并且我相信这种现象的发生是由于第70行的以下代码:done = true;

(2)缩放功能已禁用了所有不是所希望的效果的有趣平移效果(例如,侏儒,等距等)。

我有一个工作的小提琴来演示遇到的问题:http://jsfiddle.net/Guill84/8sru2573/1/

最佳答案

缩放后,动画将刷新图形。关闭时,您需要明确地执行此操作(我还清理了缩放,这引发了错误):

function move() {
    if(d3.event){
        var scale = d3.event.scale;
        var origin = [d3.event.translate[0] * -1, d3.event.translate[1]];

        projection.scale(scale);
        backgroundCircle.attr('r', scale);

        if (done) refresh(); //<-- explicit refresh
    }
}




更新fiddle

关于javascript - D3 Spinning Globe:合并缩放功能时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37614787/

10-15 22:37