我的頁面上有一個Flash元素,並且由於Flash通常非常微妙,因此需要將其置於整數像素值(如果需要詳細信息,請參見Flash webcam access request prompt unresponsive)。檢測由CSS轉換引起的HTML元素的移動
我通過在div
包裹object
,在object
設置position:absolute
,並使用jQuery設置left
和top
到含有div
的圓潤offset
實現這一目標。這是一個拗口,這裏是代碼的形式:
<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