提交后,如果页面太大,用户必须向下滚动才能看到foo.php给出的结果,我希望它强制浏览器向下滚动到结果消息,如果可能的话。我非常愿意做任何事情让页面自动向下滚动,不需要使用ajax。等
$(function(){
$('button[type=submit]').click(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "foo.php",
data: $("#myform").serialize(),
beforeSend: function(){
$('#result').html('<div class="success"><img src="../images/loading-blue.gif" width="25" /></div>');
},
success: function(data){
$('#result').html(data);
//var objDiv = document.getElementById("#result");
//objDiv.scrollTop = objDiv.scrollHeight;
//(example I found online, didn't work)
}
});
});
});
答案 0 :(得分:3)
在jQuery中,这应该是你的票。
$('html, body').animate({scrollTop:$(document).height()}, 'slow');
答案 1 :(得分:1)
使用javascript
。 result
是结果id
div
的位置
document.getElementById('result').scrollIntoView();
答案 2 :(得分:0)
$("body").animate({scrollTop:$("#result").offset().top},500);
这将在$("#result")
向右滚动。
为了更好的回答你还应该给我们#result
的CSS,因为我们不知道它的位置(绝对的,固定的,静态的,相对的)
答案 3 :(得分:0)
如果结果确实是页面上的最后一个元素,那么对Rottingham的答案的改进就是这样做:
$("html, body").animate({scrollTop:$(document).height()-$(window).height(), "slow");
这样更好,因为第二个参数中指定的时间应该是窗口到达页面末尾所需的时间,而使用Rottingham的答案时,它会向下移动一点点。