2011-01-18 4 views
4

メインコンテンツエリアを更新するためにajaxを使用するページを作成しています。ユーザーは、左側のメニューバーからアイテムをクリックして、検索結果で右側のdivを更新します。jQuery - アイテムが現在ビューポートの外にあるかどうかを検出する方法?

ユーザーが今までスクロールして右端の結果divをビューポートの外に移動させたことを検出したいのですが、それを検出していますか?

答えて

5

テスト/クロスブラウザ保証/サンプルコードはありませんが、$elem.offset().topをご覧ください。対$(document).scrollTop() - あなたの解決策かもしれません。

要素の.height()windowが必要な場合があります。

freenodeの#jQueryのBrodingoは、簡略化したViewport Selectors pluginにリンクしました。

+0

おかげでgnafrを!これは解決するのはかなりトリッキーな問題のように思える - 私は "ビューポートセレクター"プラグインの使用に頼った。私は現時点でのプロトタイプだけで作業しています。クロスブラウザの問題に対処する必要がある場合は、プラグインを開いてそのコードの一部を借りなければならないかもしれません。それにもかかわらず...ここに私が何をしたのですか? if($( "#products-result:in-viewport")長さ=== 0){ $ .scrollTo( '#facet-header'、400); } – rsturim

0

私は、ビューポートの外にあるthis_elementは(その境界上または下のいずれか)YOUR ACTIONをトリガー以下といくつかの成功を収め、持っていた:

function scroll_to(this_element){ 
    var banner_height = 145; 
    var window_height = $(window).height(); 
    var scroll_position = $(window).scrollTop(); 
    var element_position = $(this_element).position().top; 
    var element_height = $(this_element).height(); 
    if(((banner_height + element_position) < scroll_position) || ((scroll_position + window_height) < (banner_height + element_position + element_height))){ 
     //YOUR ACTION   
    } 
} 
関連する問題