Hallo leute,
ich habe ein kleines Problem. Ich möchte beim klicken auf ein Div eine Animation starten, wenn man noch mal auf den div klickt, soll die animation beendet werden. Danach soll angezeigt werden, wieviele milisekunden zwischen ersten und zweiten klick vergangen sind. Folgenden code habe ich verwendet:
JavaScript:
var time;
var start = 0;
var end = 0;
$('.animationBar').click(function(){
if($('.arrow').is(':animated')){
$('.arrow').animate().stop();
time = new Date();
end = time.getTime();
}else{
time = new Date();
start = time.getTime();
$('.arrow').css('margin-left','0px');
$('.arrow').animate({
marginLeft: '+=199'
}, 500,'linear', function() {
time = new Date();
end = time.getTime();
$('.display').text(-1*(start-end));
});
}
$('.display').text((end-start));
});
es lauft also eine linie in einer bar von links nach rechts. Ich habe als animationsdauer 500 milisekunden eingestellt. also müsste bei mir nach der animation im display immer 500 stehen. jedoch kriege ich als ergebnis zwischen 502 und 510 und manchmal gibt es im browser kleine laggs und als ergebnis kriege ich 600+. meine fragen sind nun:
habe ich denn eine möglichkeit die zeit exakt herauszufinden?
und wieso ist die ausgabe größer als das erwartete ergebnis? habe ich an falschen stellen die zeit gespeichert?
MFG BlackScorp