Javascript 仅当用户不滚动时才滚动到底部
我发现自己又一次对JS感到沮丧!请帮忙 下面是我用于一个简单聊天应用程序的一些代码,它通过AJAX请求刷新文本文件中的内容。同时,它会滚动到窗口的底部。我希望这样,如果用户向上滚动以跟上,它不会在刷新时将其发送到底部,从而不断中断此行为。我怎么能这样做Javascript 仅当用户不滚动时才滚动到底部,javascript,jquery,ajax,Javascript,Jquery,Ajax,我发现自己又一次对JS感到沮丧!请帮忙 下面是我用于一个简单聊天应用程序的一些代码,它通过AJAX请求刷新文本文件中的内容。同时,它会滚动到窗口的底部。我希望这样,如果用户向上滚动以跟上,它不会在刷新时将其发送到底部,从而不断中断此行为。我怎么能这样做 <script> $(function() { startRefresh(); }); function startRefresh() { setTimeout(startRefresh,3000); $.
<script>
$(function() {
startRefresh();
});
function startRefresh() {
setTimeout(startRefresh,3000);
$.post('pollchat.php', function(data) {
$('#content_div_id').html(data);
var wtf = $('#content_div_id');
var height = wtf[0].scrollHeight;
wtf.scrollTop(height);
});
}
</script>
$(函数(){
startRefresh();
});
函数startRefresh(){
设置超时(startRefresh,3000);
$.post('pollchat.php',函数(数据){
$('#content_div_id').html(数据);
var wtf=$('content'u div'u id');
var height=wtf[0]。滚动高度;
wtf.滚动顶部(高度);
});
}
非常感谢您的帮助 查看我是如何使用当前滚动位置的,并统计用户是否已滚动
$(函数(){
startRefresh();
});
函数startRefresh(){
设置超时(startRefresh,1000);
var wtf=$('content'u div'u id');
var currentScrollPos=wtf.scrollTop();
var elementHeight=wtf[0]。滚动高度;
var-scroll=false;
//用户已滚动,不设置滚动
if(wtf.height()+currentScrollPos>=元素高度){
滚动=真;
}
var data=$('#content_div_id').html();
数据+=“某些文本
”;
$('#content_div_id').html(数据);
如果(滚动){
var height=wtf[0]。滚动高度;
wtf.滚动顶部(高度);
}
}
\content\u div\u id{
最大高度:100px;
溢出y:滚动;
}
一些文本
一些文本
一些文本
一些文本
在刷新内容之前,您需要获取用户的滚动位置,并在加载后设置该滚动位置。这与标记PHP有什么关系?@user:请查看我的答案,并告诉我它是否有用$(function(){startRefresh();});函数startRefresh(){setTimeout(startRefresh,1000);var wtf=$('#content_div_id');var currentcrollpos=wtf.scrollTop();var elementHeight=wtf[0]。scrollHeight;var scroll=false;//用户已滚动,如果(wtf.height()+currentcrollpos>=elementHeight){scroll=true;}$.post,则不设置滚动('pollchat.php',函数(数据){$('content_div_id').html(数据);});if(滚动){var height=wtf[0].scrollHeight;wtf.scrollTop(height);}试过了..不起作用因为你删除了函数来提取数据,我似乎根本无法让它起作用。你能用我的post data ajax函数发布一个响应吗?如果你理解我正在做的事情的逻辑,这并不难…从var wtf==…复制代码并将其放入ajax回调中,尝试一次,然后让我知道你是否需要无法完成。。。。