Fire a tick immediately on start.
This improves the performance of transitions that have already ended (those with zero duration), as the transition can end immediately on start rather than waiting for a second tick.
This commit is contained in:
Родитель
cd135d5e90
Коммит
55759258fd
|
@ -1780,7 +1780,7 @@ function d3_transition(groups, id) {
|
||||||
|
|
||||||
delay <= elapsed ? start() : d3.timer(start, delay, then);
|
delay <= elapsed ? start() : d3.timer(start, delay, then);
|
||||||
|
|
||||||
function start() {
|
function start(elapsed) {
|
||||||
if (lock.active > id) return stop();
|
if (lock.active > id) return stop();
|
||||||
lock.active = id;
|
lock.active = id;
|
||||||
|
|
||||||
|
@ -1791,7 +1791,7 @@ function d3_transition(groups, id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
event.start.dispatch.call(node, d, i);
|
event.start.dispatch.call(node, d, i);
|
||||||
d3.timer(tick, 0, then);
|
if (!tick(elapsed)) d3.timer(tick, 0, then);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -39,7 +39,7 @@ function d3_transition(groups, id) {
|
||||||
|
|
||||||
delay <= elapsed ? start() : d3.timer(start, delay, then);
|
delay <= elapsed ? start() : d3.timer(start, delay, then);
|
||||||
|
|
||||||
function start() {
|
function start(elapsed) {
|
||||||
if (lock.active > id) return stop();
|
if (lock.active > id) return stop();
|
||||||
lock.active = id;
|
lock.active = id;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ function d3_transition(groups, id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
event.start.dispatch.call(node, d, i);
|
event.start.dispatch.call(node, d, i);
|
||||||
d3.timer(tick, 0, then);
|
if (!tick(elapsed)) d3.timer(tick, 0, then);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче