我的页面上有一个Flash元素,因为Flash通常非常精致,所以需要将其定位为整数像素值(如果需要详细信息,请参阅Flash webcam access request prompt unresponsive。)
我通过将object
包裹在div
中,在position:absolute
上设置object
,并使用jQuery设置left
和{来实现此目的{1}}到包含top
的四舍五入offset
。这是一口,这是代码形式:
div
这一切都很有效(如果上面的代码有错,那只是将其删除)
这将在浏览器更改大小时更新位置,并且当某些JavaScript更改位置时,它很容易更新,但页面也使用CSS <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>
来动画一些更改。我怎么能发现这个?至少,我想检测何时发生影响物体的过渡,并知道何时停止。理想情况下,我想知道如何捕捉任何移动(例如由字体大小更改或图像加载引起)。
答案 0 :(得分:0)
你可以查看这个小提琴:http://jsfiddle.net/DpYNm/ 它记录了一个动作开始和结束时,我不确定它是否是你问题的解决方案,但它可能会帮助你朝着正确的方向前进!
function checkForMove() {
if ($('#testDiv').prop('user_default_width') === undefined) {
$('#testDiv').prop('user_default_width', $('#testDiv').width());
$('#testDiv').prop('user_is_moving', false);
}
if ($('#testDiv').width() != $('#testDiv').prop('user_default_width') && !$('#testDiv').prop('user_is_moving')) {
$('#log').html($('#log').html() + "Move started<br/>");
$('#testDiv').prop('user_is_moving', true);
}
if ($('#testDiv').width() == $('#testDiv').prop('user_default_width') && $('#testDiv').prop('user_is_moving')) {
$('#log').html($('#log').html() + "Move ended<br/>");
$('#testDiv').prop('user_is_moving', false);
}
setTimeout(checkForMove, 1);
}
checkForMove();
每隔ms调用一次checkForMove,在第一次调用中,它会将div的宽度保存到属性中。每次更改(转换开始)时,它都会记录并保存一个帮助器属性,以确保它不会再次记录,直到转换回到默认大小。我相信你可以根据自己的需要改变那个部分! :)