これは、d3 の例で一般的なタイミング関数です。
d3.timer(function() {
var angle = (Date.now() - start) * speed,
transform = function(d) {
return "rotate(" + angle / d.radius + ")";};
lightsweep.select(".lightsweep").attr("transform", transform);
});
「ライトスイープ」は私に固有のものです。d.radius は、「lightsweep」オブジェクトにバインドされたデータ オブジェクトから取得され、svg グループの回転に使用されます。このコードは機能しますが、断続的に実行したいと思います。たとえば、1 秒間実行してから、10 秒間待ってから再度実行します。どうやってやるの?
注: setInterval または setTimeout は使用したくありません。d3 タイマーにはいくつかの驚くべき属性があり、それらの機能よりも優れています。ただし、d3.timerreturn true
をキャンセルするには a が必要です。コールバック関数かもしれないと思いますが、思いつきません。
助けてくれてありがとう。