隐藏div时滚动位置丢失

时间:2012-06-11 14:54:13

标签: jquery

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

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

我做错了什么或者这是一个错误。 有没有办法用som插件围绕它。

/安德斯

感谢您的答案和解决方案。但是如果我隐藏的div是一个外部div而且滚动div在我隐藏的div内深处。有没有一种聪明的方法来解决这个问题。但是现在我无法在隐藏/显示

的回调中设置/保存滚动位置

2 个答案:

答案 0 :(得分:5)

如果你将位置保持为数据,那么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

答案 1 :(得分:1)

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

Scroll Position of div with "overflow: auto"