У меня есть элемент Flash на моей странице, и поскольку Flash, как правило, довольно деликатный, он должен быть помещен в значения целочисленного пикселя (см. Flash webcam access request prompt unresponsive, если вам нужны детали).Обнаружение движения элемента HTML, вызванного переходами CSS
Я достижения этой цели, обертывая object
в div
, установив position:absolute
на object
, и с помощью JQuery для установки left
и top
к закругленным offset
вмещающего div
. Это был полный рот, здесь в виде кода:
<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>
И что все отлично работает (если выше код имеет ошибку, это просто от разрезая его вниз)
Это обновит положение, когда браузер меняет размер, и его достаточно легко обновить, когда позиция изменена на каком-то JavaScript, но на странице также используется CSS transition-duration
для анимации некоторых изменений. Как я могу это обнаружить? Как минимум, я хотел бы определить, когда происходит переход, который влияет на объект, и знать, когда он остановится. В идеале я хотел бы знать, как поймать любое движение (например, вызванное изменением размера шрифта или загрузкой изображений).
Есть некоторые события, касающиеся переходов, но я не знаю, насколько они полезны –
Вы можете обнаружить, когда переход закончился, но все же не обнаруживается, когда начинается переход, по крайней мере, не то, о чем я знаю. Поиск события перехода –
@ спасибо, это начало. По крайней мере, он теперь правильно позиционируется. Я по-прежнему хотел бы разместить его во время анимации, если это возможно. Будущим читателям: '.on ('transitionend webkitTransitionEnd oTransitionEnd otransitionend', update);' – Dave