0

这个问题与堆栈溢出上发布的许多其他问题非常相似,我发现了一些基于我的代码的解决方案,但对我正在搜索的内容没有帮助,Overstackyelotofu 和一些类似的帖子...... (这与我几天前发布的另一个问题有关,但我很确定它现在不活跃,因为我得到了答案)。

所以我基本上创建了一个 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 上运行的好选择。

感谢您提供的任何帮助/建议。

4

1 回答 1

0

我弄清楚为什么它在 chrome 上不起作用

$("#chatscreen")[0].scrollHeight - $("#chatscreen").scrollTop() == $("#chatscreen").outerHeight()

是错误的,仍然不确定为什么当我们添加时它会起作用,.scroll()但是上面的等式需要通过在最终结果中添加 -1 来更改以使其起作用。

写在这里是因为有一天它可能会对某人有所帮助......

于 2012-10-20T14:34:56.627 回答