在我的网站上,我有一个div(.wrapper),当鼠标滚轮滚动或者用户使用箭头键/空格键等时,它会完全移动坐标。
在某些点,比如当div.wrapper剩下-1000像素时,Id就像一个函数发生。
无论如何我可以在不使用间隔的情况下检查这个吗?
setInterval(function(){
if($('.wrapper').css('left') <= 100 + 'px'){
alert('foo');
} else {
alert ('bar');
};
}, 5000);
答案 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
}