Mam element Flash na mojej stronie, a ponieważ Flash jest zwykle dość delikatny, musi być umieszczony na wartościach całkowitoliczbowych (patrz Flash webcam access request prompt unresponsive, jeśli chcesz uzyskać szczegóły).Wykryj ruch elementu HTML spowodowany przejściami CSS
ja to osiągnąć przez owijanie object
w div
ustawienie position:absolute
na object
i jQuery ustawić left
i top
zaokrąglonym offset
z zawierającego div
. To był łyk, tutaj jest w formie kodu:
<div id="wrapper">
<object id="flash" blah style="position:absolute">
<!-- blah -->
</object>
</div>
<script>
function update(){
var p=$('#wrapper').offset();
$('#flash').css({'left':Math.round(p.left),'top':Math.round(p.top)});
}
$(document).ready(function(){
$(window).resize(update);
update();
});
</script>
I to wszystko działa świetnie (jeśli powyższy kod ma błąd, to tylko od je ścinać)
że zaktualizuje pozycji, gdy przeglądarka zmienia rozmiar i można ją łatwo zaktualizować, gdy pozycja zostanie zmieniona przez niektóre skrypty JavaScript, ale strona używa również CSS transition-duration
do animowania niektórych zmian. Jak mogę to wykryć? Jako minimum chciałbym wykryć, kiedy następuje przejście, które wpływa na obiekt, i wiedzieć, kiedy to się skończy. Idealnie chciałbym wiedzieć, jak złapać dowolny ruch (na przykład spowodowany zmianami rozmiaru czcionki lub ładowaniem obrazów).
jest kilka zdarzeń dotyczących przejść, ale nie wiem, jak przydatne są one –
Możesz wykryć, kiedy przejście zostało zakończone, ale nadal nie wykrywa, kiedy początek przejścia, a przynajmniej nie jest coś, o czym jestem świadomy. Wyszukaj przejściowe wydarzenie –
@ @asty dzięki, to jest początek. To przynajmniej kończy się teraz poprawnie. Nadal chciałbym ustawić go w czasie animacji, jeśli to możliwe. Do przyszłych czytelników: '.on ('transitionend webkitTransitionEnd oTransitionEnd otransitionend', update);' – Dave