如何在动态刷新div上保持滚动位置?

时间:2013-04-20 10:29:37

标签: javascript html ajax scroll

我几个小时前正在寻找这个,我无法在任何地方找到。

我使用简单的Jquery脚本来刷新div。我想在那个div中看到我的PHP输出。

$script = " 

<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js\"></script>   
    <script type=\"text/javascript\">// <![CDATA[
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
setInterval(function() {
$('#uziRefresh').load('http://mypage/refresh.php?a_a=".$kinek[1]."');
}, 6000); // the \"3000\" here refers to the time to refresh the div.  it is in milliseconds. 
});
// ]]></script>

";

我的问题是。当它刷新时,转到div滚动的顶部位置。我想保持当前的位置,因为我的用户我想阅读div的所有内容。我想做一个简单的聊天应用程序。但它总是很糟糕。

我该如何解决这个问题?有人有解决方案吗?

2 个答案:

答案 0 :(得分:0)

检查此解决方案。我删除了您的评论抱歉!。

$(document).ready(function() {

    $.ajaxSetup({
        cache: false
    });

    var updateScrollPosition = function() {
        var div = $('#uziRefresh');
        div.scrollTop(div.height());
    };


    setInterval(function() {
        $('#uziRefresh').load('http://mypage/refresh.php?a_a=".$kinek[1]."', updateScrollPosition);
    }, 6000);
});

准确地使用它 -

  

$ script =“

     
<script type=\"text/javascript\">// <![CDATA[
     

$(document).ready(function(){

$.ajaxSetup({
    cache: false
});

var updateScrollPosition = function() {
    var div = $('#uziRefresh');
    div.scrollTop(div.height());
};


setInterval(function() {
    $('#uziRefresh').load('http://mypage/refresh.php?a_a=".$kinek[1]."',
     

updateScrollPosition);       },6000); //]]&gt;

     

“;

答案 1 :(得分:0)

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>  
<script type="text/javascript">


$(document).ready(function() {

    $.ajaxSetup({
        cache: false
    });
setInterval(function() {
var div = document.getElementById("uzidoboz").scrollTop; 
$('#uziRefresh').load('/modulok/belso_levelezes/refresh.php?a_a=<?php print($kinek[1])?>', function(){ 
$("div.uzidoboz").scrollTop(div);
})
}, 6000);
});
</script>

这是我的完整解决方案。对不起,我错过了一些div名字,但是正确的名字,最后的解决方案还没有奏效。这工作很好。首先,我获取当前的scrolltop,重新加载div,然后设置scrolltop。

它每6000毫秒运行一次。它现在很简单并且有效。我有我的div。 uzidoboz div已经溢出。我的内容就是这样。但我把它加载到uziRefresh div ...