【问题标题】:Scroll position lost when hiding div隐藏 div 时滚动位置丢失
【发布时间】:2012-06-14 12:03:23
【问题描述】:

http://jsfiddle.net/cbp4N/16/

如果你显示 div。更改滚动位置,然后在滚动位置丢失时隐藏并显示它。

我做错了什么还是这是一个错误。 有没有办法用 som 插件解决它。

/安德斯

感谢您的回答和解决方案。但是,如果我隐藏的 div 是外部 div 并且滚动 div 位于我隐藏的 div 的深处,该怎么办。有没有一种聪明的方法来解决这个问题。因为现在我无法在隐藏/显示的回调中设置/保存滚动位置

【问题讨论】:

  • 你的演示工作正常
  • 这是预期行为,因为您无法设置隐藏元素的滚动值。
  • 这是预期的,您必须存储滚动位置并在显示时重置它
  • 我用 FF 试了一下,效果很好。 Chrome 有滚动位置保存问题。

标签: jquery


【解决方案1】:

如果您将位置保持为数据,则 Jquery 的 .scrollTop() 效果很好。

$('#cbxShowHide').click(function(){
    if(this.checked) {
        $('#block').show('fast',function() {
            $(this).scrollTop($(this).data('scroll'));
        });
    }
    else {
       $('#block').data('scroll',$('#block').scrollTop());
        $('#block').hide('fast');
    }
});

example

【讨论】:

    【解决方案2】:

    这是正常行为,因为当您隐藏它时,该元素被设置为内存中尽可能少的变量。 如果您想记住滚动位置,则必须自己存储这些位置,然后在显示时应用滚动位置。

    Scroll Position of div with "overflow: auto"

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 1970-01-01
      • 2014-05-26
      • 2011-09-25
      • 2014-11-17
      • 2012-10-26
      • 2012-04-22
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多