2016-07-01 4 views
3

私は自分自身がJSに再び不満を感じています。助けてください!スクロールしないとスクロールするだけで

以下は、AJAXリクエストを使用してテキストファイルからコンテンツをリフレッシュする簡単なチャットアプリケーション用のコードです。同時に、ウィンドウの下にスクロールします。私はそれがリフレッシュするときに、それらを下に送信することによってこの行動をinteruptingしないで追いつくためにユーザーがスクロールする場合、それが欲しいです。どうすればこのことができますか?

<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> 

大変助かりました。

+0

の内容をリフレッシュする前にユーザーのスクロール位置を取得し、ロード後にそのスクロール位置を設定する –

+0

これはどのようにPHPのタグに関連していますか? –

+0

@user:私の答えを見て、それが助けてもらえないかを教えてください。 –

答えて

0

は、私は現在のスクロール位置を使用してUPDATE

$(function() { 
 
    startRefresh(); 
 
}); 
 

 
function startRefresh() { 
 
    setTimeout(startRefresh, 1000); 
 
    var wtf = $('#content_div_id'); 
 
    var currentScrollPos = wtf.scrollTop(); 
 
    var elementHeight = wtf[0].scrollHeight; 
 
    var scroll = false; 
 

 
    //User has scrolled, don't set scroll 
 
    if (wtf.height() + currentScrollPos >= elementHeight) { 
 
    scroll = true; 
 
    } 
 

 
    var data = $('#content_div_id').html(); 
 
    data += "Some Text<br/>"; 
 
    $('#content_div_id').html(data); 
 

 
    if (scroll) { 
 
    var height = wtf[0].scrollHeight; 
 
    wtf.scrollTop(height); 
 
    } 
 
}
#content_div_id { 
 
    max-height: 100px; 
 
    overflow-y: scroll; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="content_div_id"> 
 
    Some Text 
 
    <br/>Some Text 
 
    <br/>Some Text 
 
    <br/>Some Text 
 
    <br/> 
 
</div>

...ユーザーがスクロールしたかどうかということにカウントしている方法を参照してください: すると、このコードを試してみてください、あなたはおそらく修正する必要があります1つまたは2つのもの..しかし、コードを見て、アイデアを得る

$(function() { 
    startRefresh(); 
}); 
function startRefresh() { 
    setTimeout(startRefresh,3000); 

    $.post('pollchat.php', function(data) { 
     var wtf = $('#content_div_id'); 
     var currentScrollPos = wtf.scrollTop(); 
     var elementHeight = wtf[0].scrollHeight; 
     var scroll = false; 

     //User has scrolled, don't set scroll 
     if (wtf.height() + currentScrollPos >= elementHeight) { 
      scroll = true; 
     } 

     $('#content_div_id').html(data); 
     if (scroll) { 
      var height = wtf[0].scrollHeight; 
      wtf.scrollTop(height); 
     } 
    }); 
} 
+0

データをプルするために関数を削除したため、まったく動作しないようです。投稿データのAjax関数で応答を投稿できますか? – user3516183

+0

あなたが私がやっていることを理解していれば難しいことではありません... var wtf == ....コードをコピーしてAjaxコールバックの中に入れて、一度試してみてください。それをやり遂げるために.... –

+0

nope didnt work。 – user3516183

関連する問題