メインコンテンツエリアを更新するためにajaxを使用するページを作成しています。ユーザーは、左側のメニューバーからアイテムをクリックして、検索結果で右側のdivを更新します。jQuery - アイテムが現在ビューポートの外にあるかどうかを検出する方法?
ユーザーが今までスクロールして右端の結果divをビューポートの外に移動させたことを検出したいのですが、それを検出していますか?
メインコンテンツエリアを更新するためにajaxを使用するページを作成しています。ユーザーは、左側のメニューバーからアイテムをクリックして、検索結果で右側のdivを更新します。jQuery - アイテムが現在ビューポートの外にあるかどうかを検出する方法?
ユーザーが今までスクロールして右端の結果divをビューポートの外に移動させたことを検出したいのですが、それを検出していますか?
テスト/クロスブラウザ保証/サンプルコードはありませんが、$elem.offset().top
をご覧ください。対$(document).scrollTop()
- あなたの解決策かもしれません。
要素の.height()
とwindow
が必要な場合があります。
freenodeの#jQueryのBrodingoは、簡略化したViewport Selectors pluginにリンクしました。
私は、ビューポートの外にある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
}
}
おかげでgnafrを!これは解決するのはかなりトリッキーな問題のように思える - 私は "ビューポートセレクター"プラグインの使用に頼った。私は現時点でのプロトタイプだけで作業しています。クロスブラウザの問題に対処する必要がある場合は、プラグインを開いてそのコードの一部を借りなければならないかもしれません。それにもかかわらず...ここに私が何をしたのですか? if($( "#products-result:in-viewport")長さ=== 0){ $ .scrollTo( '#facet-header'、400); } – rsturim