javascript - jQuery focus() 页面滚动长度

标签 javascript jquery css browser cross-browser

我有这样的代码:

<a href="javascript://" onclick="$('#newMsgTxt').focus();">New message</a>
<div style="min-height: 1300px;"></div>
<textarea id="newMsgTxt"></textarea>
<div style="min-height: 500px;"></div>

问题来了: 单击链接后,在不同的浏览器中页面会滚动到不同的位置。

点击后 textarea 在屏幕上的位置示例:

Chrome:居中
FF:底部
歌剧:顶级

如何让所有浏览器都像 Chrome 一样工作?

最佳答案

$('a').click(function(e){
    e.preventDefault();
    var o = $('#newMsgTxt').focus().offset().top, $w = $(window);
    $w.scrollTop(o - ($w.height() / 2));
});

http://jsfiddle.net/2BHRw/

关于javascript - jQuery focus() 页面滚动长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14772369/

相关文章:

javascript - 拖动范围 slider - 如何向输出添加步骤和元素(逗号)

javascript - 在 onclick 函数中传递多个参数

javascript - jQuery 使用#/page 获取页面

javascript - Jquery onmouseover 函数在第一次悬停时没有被触发

javascript - 如何在javascript中将对象深度复制为对象而不是数组

javascript - 现在的 ASP.NET Javascript 框架

javascript - 如何向 JavaScript 中的字符串添加新方法?

javascript - JSONP 在本地转换为数组?

javascript - 拖动时更改元素类

asp.net - 是否有内置的 C# 函数来生成有效的 CSS 类名?