0

私のウェブサイトには、マウスホイールがスクロールされたとき、またはユーザーが矢印キー/スペースバーなどを使用したときに座標を絶対に移動する div (.wrapper) があります。

特定の時点で、たとえば div.wrapper が -1000 ピクセル残っているとき、関数が発生するようにしたいと思います。

間隔を使用せずにこれを確認できる方法はありますか?

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

1 に答える 1

0

CSSプロパティの変更を検出するイベントはありません。leftこれを行う通常の方法は、プロパティを更新した後、ハンドラーの呼び出しを明示的に行うことです。

値を変更するコードを別の関数に移動できます。

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

必要に応じて、関数内でトリガーしsetLeft、チェックコードをイベントハンドラーに配置できます。

.cssもう1つ機能するのは、イベントをトリガーするラッパー関数を作成することです。

var originalCssFunction = $.prototype.css;
$.prototype.css = function(){
    originalCssFunction.apply(this, arguments);
    // Check conditions and trigger event
}
于 2013-02-05T13:51:39.213 に答える