我正在通过 websockets 进行聊天,这是另一个故事,但是当我尝试将文本区域集中在聊天框中时,我得到了一些不希望的滚动。我有这个基本结构,因此您可以单击部分可见的窗口(用户名显示在该区域中)并且窗口变得完全可见。
<div class="container"></div>
<div class="content">
<div class="block"><textarea></textarea></div>
<div class="block"><textarea></textarea></div>
</div>
假设容器是所有其他内容本身,内容 div 是聊天窗口容器,块是聊天窗口。
您可以在这个 jsfiddle http://jsfiddle.net/Mhrvf/1/中看到它
当我不关注textarea时没有问题,但是当我关注它时,浏览器会尝试滚动所有内容以使textarea可见,然后每次我打开聊天窗口时,我的正文内容都会滚动一个距离窗口底部和文本区域。
你可以在这里看到问题http://jsfiddle.net/Cc25T/
每次打开“对话”时看看滚动条
我将焦点延迟了足够长的时间,因此动画结束并且文本区域仍然可见。像这样:http: //jsfiddle.net/Cc25T/3/
但是……有没有更好的办法?就我个人而言,我不喜欢依赖超时,所以欢迎提出任何建议:)
我知道我可以使用 jQuery animate 并且它是回调,但我只是不喜欢,因为它有多昂贵,以及更好的动画支持的方式何时使用 CSS 过渡(我知道 IE 不支持它,我不在乎)