Ответ 1
Вы можете извлечь позицию прокрутки, используя метод jQuery .scrollTop()
$(window).scroll(function (event) {
var scroll = $(window).scrollTop();
// Do something
});
У меня проблемы с функциональностью jQuery на моем сайте. Что он делает, так это то, что он использует функцию window.scroll()
для распознавания, когда окна изменяют свою позицию прокрутки, и при изменении вызывает несколько функций для загрузки данных с сервера.
Проблема в том, что .scroll()
вызывается, как только происходит небольшое изменение в положении прокрутки и загружаются данные внизу; однако, чего я хочу добиться, так это загружать новые данные, когда позиция прокрутки/страницы достигает нижней части, как это происходит в фиде Facebook.
Но я не уверен, как определить положение прокрутки с помощью jQuery?
function getData() {
$.getJSON('Get/GetData?no=1', function (responseText) {
//Load some data from the server
})
};
$(window).scroll(function () {
getData();
});
Вы можете извлечь позицию прокрутки, используя метод jQuery .scrollTop()
$(window).scroll(function (event) {
var scroll = $(window).scrollTop();
// Do something
});
Вы ищете функцию window.scrollTop()
.
$(window).scroll(function() {
var height = $(window).scrollTop();
if(height > some_number) {
// do something
}
});
Отметьте здесь 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();
}
});
$(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, когда вокруг PostBack извлекает значение и добавляет свиток.
//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;
}
$('.div').scroll(function (event) {
event.preventDefault()
var scroll = $(this).scrollTop();
if(scroll == 0){
alert(123)
}
});
Этот код для chat_boxes для загрузки предыдущих сообщений