jQuery - 使用 overflow-y 滚动 div : scroll;

标签 jquery css usability

我有一个包含消息列表的 div(这是一个聊天室应用程序)。当每条消息都添加到列表底部时,我认为我希望 div 滚动到页面底部。这有道理,对吧?那么 - 问题 #1:如何让 div 滚动到底部?

现在,下一个问题是关于可用性的。如果用户向上滚动阅读之前发布的内容怎么办?然后突然有人发了一条新消息?这意味着 jQuery 将再次向下滚动。这可能会让用户非常恼火。处理这个问题的好方法是什么?如果在添加新消息之前滚动条已经一直向下滚动,它是否应该只向下滚动?如果是这样,如何在 jQuery 中做到这一点?还是有更好用的方案?

最佳答案

可以通过window.pageYOffset获取滚动条的位置,然后使用window.scrollTo(0, y)滚动到某个地方。

或者您甚至可以在 jquery 中使用 $('#mydiv').scrollTop(newmsg_top) 来向下滚动到新消息。

其中 var newmsg_top = parseInt($('#mydiv li:last').offset().top);

这里 #mydiv 是包含所有消息的 div。
所以 #mydiv li:last 指向最后一条消息。
offset() 返回元素相对于文档的当前位置,您可以通过 .top

获取顶部位置

如果你想要相对于父级的相对位置,你可以使用 position()

编辑: 这里有一个 jsfiddle here .请看一看。 注意:只有在查看最后一个元素时才会下降。(用于解决可用性问题)

关于jQuery - 使用 overflow-y 滚动 div : scroll;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11118105/

相关文章:

jquery - 如何使用jquery获取类名

javascript - 在 jQuery 模板中使用返回值

javascript - 使用 if 语句和 jquery 更改 html 内容

html - 为什么这里没有显示背景图片?

php - 如何设置 if/or 条件,以便我的设计根据用户浏览器的字体大小进行更改?

javascript - 从 Outlook 拖放到网页

html - 在 css 中填充移动 View

html - 将 div 放在 flash 对象之上

usability - 标签可以替代分类法吗?

user-interface - 最适合用户界面的优秀网站有哪些?