Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中到达目标div时触发操作_Javascript_Css_Scroll - Fatal编程技术网

在Javascript中到达目标div时触发操作

在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

我用PHP和MySQL输出一个结果集,每个结果都包装在一个DIV中。当用户滚动到浏览器窗口底部时,JavaScript函数会触发一个动作

$(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!");
    }
  });
});