2012-04-03 127 views
0

每隔5秒刷新一次Div。 div的滾動設置爲滾動,以便用戶可以滾動,但是當刷新發生時div滾動返回頂部。任何想法如何保持div後的滾動位置刷新?在內容刷新/重新加載後,div滾動至頂部

這裏是我的CSS:

#alerts_container { 
    height: 150px; 
    width: 250px; 
    overflow: scroll; 
    overflow-x: hidden; 
    border-right-width: 1px; 
    border-right-style: solid; 
    border-right-color: #666; 
} 

JS:

refresh_alerts = setInterval(function(){ 
    $('#leftside div#alerts_container').load('staffhome.php #alerts_container'); 
}, 5000) 

HTML:

<div id='alerts_container'> 
    <?php 
    include_once('includes/my_alerts.php'); 
    ?> 
</div> 

二手SKS的回答得到這個工作對我來說,我卻不得不改變他的代碼有點:

var isScrolling = false; 
var lastScrollPos = 0; 
var counter = 0; 
$(function() { 
    $('#alerts_container').bind("scroll", function(){ 
     isScrolling = true; 
    }); 
    refresh_alerts = setInterval(refreshContent, 5000); 
    function refreshContent() { 
     lastScrollPos = $('#alerts_container').scrollTop(); 
     if (!isScrolling) { 
      $('#alerts_wrapper').load('staffhome.php #alerts_container', function() { 
      $('#alerts_container').scrollTop(lastScrollPos); 
      }); 
     } 
     isScrolling = false; 
    } 
}); 
+0

我檢查勾選回答我的問題。有沒有另外一種方法可以將某些事物標記爲有答案? – DanielOlivasJr 2012-04-04 16:45:09

回答

1

你應該得到高度滾動使用.scrollTop您的滾動處理程序中,然後將其設置.load

DEMO之後 - 嘗試滾動一路下跌,並等待5秒爲新的內容得到更新。

下面是演示一個抽象的,

var lastScrollPos = 0; 
$('#scrollingDiv').on('scroll', function() { 
    lastScrollPos = this.scrollTop; 
}); 

.load回調

$('#leftside div#alerts_container').load('staffhome.php #alerts_container' , function() { 
    $(this).scrollTop(lastScrollPos); 
}); 
+0

已標記此答案,但我確實必須更改一些內容才能使其適用於我。看看我的編輯 – DanielOlivasJr 2012-04-04 16:42:43

相關問題