当div到达位置时执行

时间:2011-08-14 04:07:36

标签: jquery

我有一个功能,可以在点击时从一个页面的右侧移动一个框。当div开始退出窗口并因此根据我的功能具有负位置时,我想发起一个事件。然而,当div通过屏幕左侧的边缘时,我得不到任何响应。有人有主意吗?

我知道位置($('#container').position().left/$(document).width())*100)已定义,如果我在初次加载页面时将< 0更改为> 0,则会触发警报。

<script>
$("#play").live('click', function() {
  $("#container").animate({"left": "-=100%"}, 25000);
});
if (($('#container').position().left/$(document).width())*100<0){
    alert('test');
}
</script>  

1 个答案:

答案 0 :(得分:3)

您可以使用step选项animate

  

step:在动画的每个步骤后调用的函数。

这样的事情:

$("#container").animate({"left": "-=100%"}, {
    duration: 25000,
    step: function() {
        if(($('#container').position().left / $(document).width())*100 < 0) {
            alert('test');
        }
    }
});

只要你的位置测试成立,那就会给你alert。当然,#container离开屏幕后,动画可能继续进行。