我有一些需要无限滚动的UI元素.所以我使用的是jscroll.我想在div结束时获取新数据.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script src=js/jquery.jscroll.js></script>
<script>
$('.scrollt').jscroll(function(){
$(".scrollt").load("/handle.php?lastdis=90");});
</script>
</head>
<body>
<?php
include_once('conn.php');
$start=0;
$query="Select * from data where id > ". $start ." Limit 90;";
$res=mysqli_query($con,$query);
echo '<div class="scrollt">';
while ($row = mysqli_fetch_array($res, MYSQL_NUM)) {
echo "<p> ".$row[0]." ". $row[1]."<p><p><p>";
}
echo "</div>"
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所以基本上我显示一个包含90条记录的页面,并希望在load()函数中获取91以上的记录.但这不起作用.
handle.php代码
<?php
include_once('conn.php');
$goahead=$_GET['lastdis'];
$query="Select * from data where id > ". $goahead ." Limit 20;";
$res=mysqli_query($con,$query);
while ($row = mysqli_fetch_array($res, MYSQL_NUM)) {
echo "<p> ".$row[0]." ". $row[1]."<p><p><p>";
}
Run Code Online (Sandbox Code Playgroud)
只有两个小时的jquery经验.请耐心等待.
使用.scroll()事件window,如下所示:
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
alert("bottom!");
}
});
Run Code Online (Sandbox Code Playgroud)
您可以在此处进行测试,这将采用窗口的顶部滚动,因此向下滚动多少,添加可见窗口的高度并检查它是否等于整个内容的高度(document).如果你想检查用户是否接近底部,它看起来像这样:
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
alert("near bottom!");
}
});
Run Code Online (Sandbox Code Playgroud)
您可以在此处测试该版本,只需将其调整100为您想要触发的底部的任何像素.
现在,而不是在底部警告用户使用ajax来获取要在底部追加的数据.
$.ajax({
url: "handle.php",
type: "post",
data: values,
success: function(data){
$("#result").append(data);
},
error:function(){
alert("failure");
$("#result").append('Error Occurred while fetching data.');
}
});
Run Code Online (Sandbox Code Playgroud)