以一定的间隔jQuery检测div运动和运行功能

时间:2013-02-05 13:50:00

标签: javascript jquery html css

在我的网站上,我有一个div(.wrapper),当鼠标滚轮滚动或者用户使用箭头键/空格键等时,它会完全移动坐标。

在某些点,比如当div.wrapper剩下-1000像素时,Id就像一个函数发生。

无论如何我可以在不使用间隔的情况下检查这个吗?

setInterval(function(){
    if($('.wrapper').css('left') <= 100 + 'px'){
        alert('foo');   
    } else {
        alert ('bar');  
    };
}, 5000);

1 个答案:

答案 0 :(得分:0)

没有事件可以检测CSS属性的变化。通常的做法是在更新left属性后显式调用处理程序。

您可以将更改值的代码移动到单独的函数中:

function setLeft(left){
    $('.wrapper').css('left', left);
    if($('.wrapper').css('left') <= 100 + 'px'){
        alert('foo');   
    } else {
        alert ('bar');  
    };
}

如果您愿意,可以在setLeft函数内触发,并将检查代码放入事件处理程序。

另一件事是为.css创建一个触发事件的包装函数:

var originalCssFunction = $.prototype.css;
$.prototype.css = function(){
    originalCssFunction.apply(this, arguments);
    // Check conditions and trigger event
}