这个问题与堆栈溢出上发布的许多其他问题非常相似,我发现了一些基于我的代码的解决方案,但对我正在搜索的内容没有帮助,Overstack,{{ 3}}和一些类似的帖子......(这与我几天前发布的另一个问题有关,但我很确定它现在已经不活用了,因为我得到了答案)。
所以我基本上创建了一个ajax聊天应用程序,我希望div的滚动条检查它是否在按钮上,如果它显示消息然后滚动。我找到了3种主要方法(删除其中一种,因为它的基础与其他方法相同)
或者:
if($("#chatscreen")[0].scrollHeight - $("#chatscreen").scrollTop() == $("#chatscreen").outerHeight())
{
alert("work");
}
或
$("#chatscreen").scroll(function(){
if($(this)[0].scrollHeight - $(this).scrollTop() == $(this).outerHeight())
{
alert("work");
}
});
我已经测试了firefox,Internet Explorer和chrome上的第一个代码,它在firefox和Internet Explorer上运行得很好,但在chrome上却没有。
它们之间唯一真正的区别是$("#chatscreen").scroll(function(){
,它基本上在使用滚动条时继续执行脚本,并且由于某些原因,这种方法在我尝试使它们无法使用的所有3个浏览器时都有效。
所以我一直在努力找到一个可以在firefox,chrome和Internet Explorer上运行的好选择。
感谢您提供任何帮助/建议。
答案 0 :(得分:0)
我在chrome上找出了它无法正常工作的原因
$("#chatscreen")[0].scrollHeight - $("#chatscreen").scrollTop() == $("#chatscreen").outerHeight()
是错误的,当我们添加.scroll()
时仍然不确定为什么它会起作用但是上面的等式需要通过在最终结果中添加-1来改变它以使其工作。
在这里写这个,因为有一天它可能对某人有帮助......