2013-07-03 15 views
121

私のウェブサイトで次のようなjQuery機能を使用しているのは、window.scroll()機能を使用してウィンドウがスクロール位置の変更を変更し、サーバーから。jQueryを使用してページのスクロール位置を検出する方法

問題はの機能ですが、スクロール位置とローディングデータが少しでも変化するとすぐに呼び出されますが、私が達成したいのは、スクロール/ページ位置が下のように、Facebookフィードのように起こります。

しかし、jQueryを使用してスクロール位置を検出する方法がわかりません。

function getData() { 
    $.getJSON('Get/GetData?no=1', function (responseText) { 
    //Load some data from the server 
    }) 
}; 

$(window).scroll(function() { 
    getData(); 
}); 

答えて

218

あなたがwindow.scrollTop()機能を探しているjQuery's .scrollTop() method

$(window).scroll(function (event) { 
    var scroll = $(window).scrollTop(); 
    // Do something 
}); 
+21

どうすればよいですか? –

+8

ウィンドウのスクロールにイベントをアタッチするのは悪い考えです:http://stackoverflow.com/questions/5036850/how-to-detect-page-scroll-to-a-best-point-in-jquery – hendr1x

+11

ウィンドウのスクロールを聞くそれ自体では悪くない。それは、人々がその出来事の各発砲で何かを起こしてトラブルを起こそうとするときです。 変数の値を現在のスクロール位置に設定するか、true/falseに設定し、イベントの外側で_those_を使用するような操作を行う場合は、通常は金色にする必要があります。 –

101

を使用してスクロール位置を抽出することができます。

$(window).scroll(function() { 
    var height = $(window).scrollTop(); 

    if(height > some_number) { 
     // do something 
    } 
}); 
30

ここでチェックDEMO http://jsfiddle.net/yeyene/Uhm2J/

function getData() { 
    $.getJSON('Get/GetData?no=1', function (responseText) { 
     //Load some data from the server 
    }) 
}; 

$(window).scroll(function() { 
    if($(window).scrollTop() + $(window).height() == $(document).height()) { 
     alert("bottom!"); 
     // getData(); 
    } 
}); 
4
$(window).scroll(function() { 
var scrolled_val = $(document).scrollTop().valueOf(); 
alert(scrolled_val+ ' = scroll value'); 
}); 

これは、スクロールの値を取得する別の方法です。

2

PostBackの周囲でHiddenFieldの変更をスクロールして値を取得し、スクロールを追加します。それがうまく機能...そしてあなたが要素を追跡し、それらを制御するためにはJQuery/TweenMaxを使用することができます

$(document).ready(function(){ 

    $(window).resize(function(e){ 
     console.log(e);     
    }); 

    $(window).scroll(function (event) { 
     var sc = $(window).scrollTop(); 
     console.log(sc); 
    }); 

}) 

私の作品

//jQuery 

jQuery(document).ready(function() { 

    $(window).scrollTop($("#<%=hidScroll.ClientID %>").val()); 

    $(window).scroll(function (event) { 
     $("#<%=hidScroll.ClientID %>").val($(window).scrollTop()); 
    }); 
}); 

var prm = Sys.WebForms.PageRequestManager.getInstance(); 

prm.add_endRequest(function() { 

    $(window).scrollTop($("#<%=hidScroll.ClientID %>").val()); 

    $(window).scroll(function (event) { 
     $("#<%=hidScroll.ClientID %>").val($(window).scrollTop()); 
    }); 
}); 

//Page Asp.Net 
<asp:HiddenField ID="hidScroll" runat="server" Value="0" /> 
2

今...。

+4

スラーと悪い言葉は絶対に避けてください。 [ヘルプ]を読んでください。 –

関連する問題