Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当用户不滚动时才滚动到底部_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 仅当用户不滚动时才滚动到底部

Javascript 仅当用户不滚动时才滚动到底部,javascript,jquery,ajax,Javascript,Jquery,Ajax,我发现自己又一次对JS感到沮丧!请帮忙 下面是我用于一个简单聊天应用程序的一些代码,它通过AJAX请求刷新文本文件中的内容。同时,它会滚动到窗口的底部。我希望这样,如果用户向上滚动以跟上,它不会在刷新时将其发送到底部,从而不断中断此行为。我怎么能这样做 <script> $(function() { startRefresh(); }); function startRefresh() { setTimeout(startRefresh,3000); $.

我发现自己又一次对JS感到沮丧!请帮忙

下面是我用于一个简单聊天应用程序的一些代码,它通过AJAX请求刷新文本文件中的内容。同时,它会滚动到窗口的底部。我希望这样,如果用户向上滚动以跟上,它不会在刷新时将其发送到底部,从而不断中断此行为。我怎么能这样做

<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回调中,尝试一次,然后让我知道你是否需要无法完成。。。。