我正在使用此jquery ajax从数据库接收消息。但是当有人试图发送一个消息然后它来到这里但无法自动滚动到底部。任何的想法?
setTimeout(startRefresh,1000);
var myKeyVals = { some value };
var saveData = $.ajax({
type: 'POST',
url: "https://example.php",
data: myKeyVals,
success: function(resultData) {
$("#chatwindow").html(resultData);
//######################################
}
});
saveData.error(function() { alert("Something went wrong"); });
答案 0 :(得分:0)
你可以尝试使用animate
& {j} scrollTop
内的success
喜欢:
$("html, body").animate({
scrollTop: $(document).height() - $(window).height()
}, 'slow');

div {height: 900px; border:2px solid #333; padding:10px;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv1">DATA FOR SAMPLE 1</div>
<div id="mydiv2">SAMPLE DATA</div>
<div id="mydiv2">SAMPLE DATA</div>
&#13;
为了在滚动之前确实存在新的DOM元素,您可以尝试添加一些setTimeout
几毫秒并在其中添加此代码。
答案 1 :(得分:0)
检查一下:https://www.electrictoolbox.com/jquery-scroll-bottom/
以下Javascript将使用jQuery将页面滚动到底部:
$('html, body').animate({scrollTop:$(document).height()}, 'slow');
显然,您可以将动画速度(在上面的示例中慢慢地)更改为其他内容,例如&#39; fast&#39;或数字持续时间(以毫秒为单位),数字越大,动画越慢。
要将滚动功能绑定到对页面中现有元素执行的单击,请执行以下操作,其中#someID是元素的ID:
$(document).ready(function() {
$('#someID').click(function(){
$('html, body').animate({scrollTop:$(document).height()}, 'slow');
return false;
});
});
答案 2 :(得分:0)
你可以尝试这个技巧。看看这对你有帮助:
$("html, body").animate({ scrollTop: $(document).height() }, 20000);
setTimeout(function() {
location.reload();
},20000);