Как определить положение прокрутки страницы с помощью jQuery
у меня возникли проблемы с функциональностью jQuery на моем сайте. Что он делает, так это то, что он использует window.scroll() функция для распознавания, когда windows изменяет свое положение прокрутки и при изменении вызывает несколько функций для загрузки данных с сервера.
проблема .scroll() функция вызывается, как только есть даже небольшое изменение в положении прокрутки и загружает данные в нижней части; однако то, что я хочу достичь, это загрузить новые данные, когда положение прокрутки / страницы достигает в нижней части, как это происходит для ленты Facebook.
но я не уверен, как определить положение прокрутки с помощью jQuery?
function getData() {
$.getJSON('Get/GetData?no=1', function (responseText) {
//Load some data from the server
})
};
$(window).scroll(function () {
getData();
});
7 ответов:
вы можете извлечь положение прокрутки с помощью jQuery
.scrollTop()метод$(window).scroll(function (event) { var scroll = $(window).scrollTop(); // Do something });
проверьте здесь демо 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(); } });
$(window).scroll( function() { var scrolled_val = $(document).scrollTop().valueOf(); alert(scrolled_val+ ' = scroll value'); });Это еще один способ получить значение прокрутки.
теперь это работает для меня...
$(document).ready(function(){ $(window).resize(function(e){ console.log(e); }); $(window).scroll(function (event) { var sc = $(window).scrollTop(); console.log(sc); }); })он работает хорошо... а затем вы можете использовать JQuery/TweenMax для отслеживания элементов и управления ими.
сохранить значение прокрутки как изменения в HiddenField, когда вокруг обратной передачи извлекает значение и добавляет прокрутку.
//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" />
Вы можете добавить все страницы с таким кодом:
JS код:
/* Top btn */ $(window).scroll(function() { if ($(this).scrollTop()) { $('#toTop').fadeIn(); } else { $('#toTop').fadeOut(); } }); var top_btn_html="<topbtn id='toTop' onclick='gotoTop()'>↑</topbtn>"; $('document').ready(function(){ $("body").append(top_btn_html); }); function gotoTop(){ $("html, body").animate({scrollTop: 0}, 500); } /* Top btn */CSS-КОД
/*Scrool top btn*/ #toTop{ position: fixed; z-index: 10000; opacity: 0.5; right: 5px; bottom: 10px; background-color: #ccc; border: 1px solid black; width: 40px; height: 40px; border-radius: 20px; color: black; font-size: 22px; font-weight: bolder; text-align: center; vertical-align: middle; }
Comments