在Javascript中到达目标div时触发操作
我用PHP和MySQL输出一个结果集,每个结果都包装在一个DIV中。当用户滚动到浏览器窗口底部时,JavaScript函数会触发一个动作在Javascript中到达目标div时触发操作,javascript,css,scroll,Javascript,Css,Scroll,我用PHP和MySQL输出一个结果集,每个结果都包装在一个DIV中。当用户滚动到浏览器窗口底部时,JavaScript函数会触发一个动作 $(window).scroll(function(){ if ($(window).scrollTop() == $(document).height() - $(window).height()){ trigger_funtion(); } }); PHP结果的每个项(class.item)都被放入包含所有项的通用包装DIV(class
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
trigger_funtion();
}
});
PHP结果的每个项(class.item)都被放入包含所有项的通用包装DIV(class.results)中
如何更改上面的此函数,以便在用户“滚动”或“到达”从结果集创建的最后一个DIV时触发操作,而不是在用户点击浏览器窗口底部时触发操作
我试过以下方法,但不起作用
$(window).scroll(function(){
if ($(window).scrollTop() == $(".results .item:last")){
trigger_funtion();
}
});
您需要使用,我建议使用>=而不是==因为您不能依赖于数字相等
if ($(window).scrollTop() >= $(".results .item:last").position().top)
或
下面是最后一个项目到达顶部时的代码
当它触底时,在这里
谢谢你的快速回答!然而,这往往只在最后一个元素到达浏览器顶部时触发。如何使最后一项从底部进入浏览器窗口时立即触发该功能?想象一下,它是一个长长的项目列表,但一旦最后一个项目在浏览器中出现,数据应该会继续加载,就像在无尽的滚动中一样!然而,当“最后一项”出现在底部时,我需要它工作,因为现在我需要在最后一项到达顶部之前通过所有空白,所以我尝试用“底部”替换所有显示“顶部”的内容,如:“$item.position().bottom-10;”或滚动底部,但它不工作(我不擅长Java)…请参阅更新。请注意,JAVA不是JavaScriptI,我认为在本例中.offset().top会更好,因为他想将这个距离与窗口scrollTop进行比较?这非常有效!非常感谢你的帮助!非常感谢!
var winHeight = $(window).height(); // viewport
if ($(window).scrollTop()+winHeight >= $(".results .item:last").position().top)
$(function() {
var $item = $(".results .item:last"); // cache element
$(window).scroll(function(){
var itemTop = $item.position().top-10; // subtract some pixels from the item
var winScrollTop =$(window).scrollTop();
window.console && console.log(winScrollTop,itemTop); // remove when happy
if (winScrollTop>=itemTop) {
window.console && console.log("reached!",winScrollTop,itemTop); remove when happy
$item.html("REACHED!");
}
});
});
$(function() {
var $item = $(".results .item:last"); // cache element
$(window).scroll(function(){
var itemTop = $item.position().top-10; // subtract some pixels from the item
var winScrollTop =$(window).scrollTop();
var winHeight = $(window).height();
window.console && console.log(winScrollTop,itemTop); // remove when happy
if (winScrollTop+winHeight>=itemTop) {
window.console && console.log("reached!",winScrollTop,itemTop); // remove when happy
$item.html("REACHED!");
}
});
});