停止d3js全球自动旋转

时间:2016-08-24 03:59:42

标签: javascript jquery d3.js svg

我有一个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
   }
}); 

1 个答案:

答案 0 :(得分: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();
   }
});