jquery - 如何恢复 jQuery 中刷新的 div 的滚动位置?

标签 jquery html get

我有一个非常大的 div,它使页面在垂直和水平方向上都有滚动条。

每隔几分钟,我希望 div 的内容被刷新,所以我使用 jquery get 将 div 内容重新加载到 div 中。

要注意的是,我不想改变用户正在查看的屏幕上的位置,我希望重新加载 div,但用户仍应查看 div 中的相同位置(意思是div 不应滚动回 (0,0)。

当用 $( "#mainwrapper").html( data ); 将 html 覆盖到 div 时有时会发生什么,div 暂时是空的,所以它缩小,然后重新填充,但用户现在在 ( 0,0)

希望这是有道理的。

最佳答案

在将内容加载到 div 之前,保存滚动位置。

var scroll_l = $('#yourdiv').scrollLeft(),
  scroll_t = $('#yourdiv').scrollTop();

每次滚动 div 时,保存位置,以便在加载时滚动也被保存。

$('#yourdiv').scroll(function() {
  if ($('#yourdiv').html().length) {
    scroll_l = $('#yourdiv').scrollLeft();
    scroll_t = $('#yourdiv').scrollTop();
  }
});

然后,加载新内​​容并重新应用滚动位置:

$('#yourdiv').load('/your/url', function() {
  $('#yourdiv').scrollLeft(scroll_l);
  $('#yourdiv').scrollTop(scroll_t);
});

关于jquery - 如何恢复 jQuery 中刷新的 div 的滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26015090/

相关文章:

javascript - 在内联函数中访问 javascript 变量

ruby-on-rails - 获得页面时发生的事件顺序是什么

javascript - 是否可以将 GET 响应数据传递回同一工厂?

php - 传递不断变化的查询字符串 PHP

javascript - jQuery:如何在 AJAX 调用中执行回调

javascript - Jquery密码强度检查问题

javascript - 如何动态实现 ionRangeSliders

javascript - 监听事件,例如在 JavaScript 中添加新元素

jquery datepicker允许日期小于minDate

具有三列的 HTML/CSS 全宽标题 - 2 固定 1 松散