2

ここで何か誤解していると思いますが、気が狂っていないことを確認したいと思います。いくつかの画像を遅延ロードする JS があります。ここに私がやっていることの切り捨てられたバージョンがあります:

jQuery(window).scroll(function() {
    self.image_holders = jQuery('.image-holder');
    jQuery.each(self.image_holders, function(i, placeholder){
        if ( jQuery(placeholder).offset() ){
            //compare offsets and load image if appropriate
        }
    });                
});

フォールドの下またはフォールドの一部だけ下にある一致した要素は、 に返さnulloffset()ます。私が達成しようとしているのは、ユーザーがスクロールする前に、フォルダーの下の特定のしきい値内にある画像をロードすることです。これは jQuery の予想される動作ですか? 折り目の上に表示される前に、オフセットの値を取得するにはどうすればよいですか?

編集:これらの要素を明確にするために、オフセットが必要です。これらの要素は非表示または非表示ではなく、「スクロールせずに見える範囲」にのみあります。

4

1 に答える 1

2

ドキュメントから直接:

注: jQuery は、非表示の要素のオフセット座標の取得、または body 要素に設定された境界線、マージン、またはパディングの説明をサポートしていません。

visibility:hidden が設定された要素の座標を取得することは可能ですが、display:none はレンダリング ツリーから除外されるため、未定義の位置になります。

于 2012-10-09T02:52:08.993 に答える