我正在尝试获取一个div,每2秒刷新一次,在2秒刷新后停止滚动回到顶部我有PHP代码和javascript。我正在使用的Javascript是:
function at_Ticket_scrollBottom()
{
var objDiv = document.getElementById("cartTicket");
objDiv.scrollTop = objDiv.scrollHeight;
}
function at_Tabs_Update()
{
if(div_WPOSVar_IsVisible())
{
//calling setTimeout without clearing any existing timeout can add multiple calls.
//IE the normal 2 second sequence, then call at_Tabs_Update two more times, and
// now we have 3 timeouts set to call at_Tabs again, etc.
//This wouldn't be an issue except that we call at_Tabs_Update directly to cause
// immediate refresh from many places.
//So clear the handle everytime to get rid of the last one we set.
clearTimeout(at_Tabs_Timer);
at_Tabs_Timer=setTimeout("at_Tabs_Update()", 2*1000); //every 2 seconds
return;
}
}
所以在刷新之后如果我向下滚动到故障单的底部它会在下次刷新后跳回到顶部,所以我永远不能到底并选择一个项目并在刷新之前编辑它如何停止自动滚动回到顶部。
答案 0 :(得分:1)
来自疤痕的信息我可以在这里聚集我认为你最好的选择是在你刷新之前保存你当前的滚动位置,并在ajax调用之后滚动到那个保存的位置。 使用jQuerys .scrollTop()函数读取和设置滚动。
用于说明的一些伪代码:
at ajax refresh function
var curPos $(element).scrollTop();
... do ajax call ..
ajax callback: $(element).scrollTop(curPos);