我有一个这样的代码:
<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: 底部
Opera: top
如何让所有浏览器都像Chrome一样工作?
答案 0 :(得分:1)
$('a').click(function(e){
e.preventDefault();
var o = $('#newMsgTxt').focus().offset().top, $w = $(window);
$w.scrollTop(o - ($w.height() / 2));
});
答案 1 :(得分:0)
试试这个。
onclick="$('#newMsgTxt').focus().val($('#newMsgTxt').val());
答案 2 :(得分:0)
Html:
<a href="" id="newMessage">New message</a>
JQuery:
$(document).ready(function() {
$('#newMessage').click(function(e) {
e.preventDefault();
$('#newMsgTxt').focus();
});
});
答案 3 :(得分:0)
这是因为滚动位置不同,
您可以使用console.log(window.scrollY)
点击link
进行测试
所以你必须为此编码以使其在中心对齐。
代码就像
$(function() {
$('a').click(function(e){
$('#newMsgTxt').focus();
var offsetTop = offset().top;
$(window).scrollTop(offsetTop - ($(window).height() / 2));
});
});
你的html就像:
<a href="javascript://">New message</a>
<div style="min-height: 1300px;"></div>
<textarea id="newMsgTxt">gfg</textarea>
<div style="min-height: 500px;"></div>
答案 4 :(得分:0)
嗨尝试下面的代码......我的命名不好......所以,按照你的想法替换。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script>
function test() {
var o = $('#newMsgTxt').focus().offset().top, $w = $(window);
$w.scrollTop(o - ($w.height() / 2));
}
</script>
</head>
<body>
<a onclick="test();">New message</a>
<div style="min-height: 1300px;vertical-align:top;"></div>
<textarea id="newMsgTxt" ></textarea>
<div style="min-height: 500px;"></div>
</body>
</html>