2016-08-24 84 views
0

我有一个d3js地球仪,我发现代码来自动旋转它,但我也需要停止旋转的代码。任何人都可以帮忙?这是代码。停止d3js全球自动旋转

var rotate = [.001, 0], 
velocity = [.013, 0], 
time = Date.now(); 

function rotateGlobe() { 
d3.timer(function() { 
    var dt = Date.now() - time; 
    projection.rotate([rotate[0] + velocity[0] * dt, rotate[1] + velocity[1] * dt]); 
    redraw(); 
}); 
} 



$(document).ready(function(){ 

    $("#stop").click(function(){ 
    stopGlobe() 
    }); 

    function stopGlobe() { 
    //need stop code here 
    } 
}); 

回答

3

你可以做这样的事情,停止计时器timer.stop();:

var rotate = [.001, 0], 
velocity = [.013, 0], 
time = Date.now(); 
var timer;//make timer global. 
function rotateGlobe() { 
timer = d3.timer(function() { 
    var dt = Date.now() - time; 
    projection.rotate([rotate[0] + velocity[0] * dt, rotate[1] + velocity[1] * dt]); 
    redraw(); 
}); 
} 



$(document).ready(function(){ 

    $("#stop").click(function(){ 
    stopGlobe() 
    }); 

    function stopGlobe() { 
    timer.stop(); 
    } 
});