我在网站上遇到jQuery功能问题。它的作用是,它使用window.scroll()
函数来识别窗口何时改变其滚动位置,并且在更改时调用一些函数来从服务器加载数据。
问题是,只要滚动位置发生一点变化并在底部加载数据,就会调用.scroll()
函数;但是,我希望实现的是当滚动/页面位置到达底部时加载新数据,就像Facebook Feed一样。
但我不确定如何使用jQuery检测滚动位置?
function getData() {
$.getJSON('Get/GetData?no=1', function (responseText) {
//Load some data from the server
})
};
$(window).scroll(function () {
getData();
});
答案 0 :(得分:274)
您可以使用jQuery的.scrollTop()
方法
$(window).scroll(function (event) {
var scroll = $(window).scrollTop();
// Do something
});
答案 1 :(得分:112)
您正在寻找window.scrollTop()
功能。
$(window).scroll(function() {
var height = $(window).scrollTop();
if(height > some_number) {
// do something
}
});
答案 2 :(得分:33)
点击此处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();
}
});
答案 3 :(得分:6)
$(window).scroll( function() {
var scrolled_val = $(document).scrollTop().valueOf();
alert(scrolled_val+ ' = scroll value');
});
这是获取滚动值的另一种方法。
答案 4 :(得分:4)
现在这对我有用......
$(document).ready(function(){
$(window).resize(function(e){
console.log(e);
});
$(window).scroll(function (event) {
var sc = $(window).scrollTop();
console.log(sc);
});
})
效果很好......然后你可以使用JQuery / TweenMax来跟踪元素并控制它们。
答案 5 :(得分:2)
当PostBack检索值并添加滚动时,将滚动的值存储为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" />
答案 6 :(得分: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;
}
答案 7 :(得分:0)
$('.div').scroll(function (event) {
event.preventDefault()
var scroll = $(this).scrollTop();
if(scroll == 0){
alert(123)
}
});
此聊天框代码,用于加载以前的消息
答案 8 :(得分:0)
获取滚动位置:
var scrolled_val = window.scrollY;
检测滚动位置:
$(window).scroll
(
function (event)
{
var scrolled_val = window.scrollY;
alert(scrolled_val);
}
);