【问题标题】:How to maintain div horizontal scroll position after toggle with "blind" effect使用“盲”效果切换后如何保持 div 水平滚动位置
【发布时间】:2013-10-10 18:17:44
【问题描述】:

我想做的正是这里所做的: http://jsfiddle.net/cbp4N/17/

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

在这篇文章中找到: Scroll position lost when hiding div

但是在带有水平滚动的 div 上。 我试过了 http://jsfiddle.net/cbp4N/233/

$('#button').click(function() {
    if ($('#block').is(':hidden')) {
        $('#block').show("blind");
        $('#block').scrollLeft($('#block').data('scroll'));
    } else {
        $('#block').data('scroll',$('#block').scrollLeft());
        $('#block').hide("blind");
    }
});

但它不起作用……

我们可以在隐藏之前看到滚动重置,我想防止这种情况发生。

【问题讨论】:

    标签: jquery scroll show-hide


    【解决方案1】:

    在这里它可以工作,但是滚动的盲目效果有点难看......

    $('#button').click(function() {
        if ($('#block').is(':hidden')) {
            $('#block').show("blind", function(){
                $(this).scrollLeft($(this).data('scroll'));
            });
        } else {
            $('#block').data('scroll',$('#block').scrollLeft());
            $('#block').hide("blind");
        }
    });
    

    http://jsfiddle.net/cbp4N/234/

    【讨论】:

    • 谢谢!你认为有没有办法防止 div 在盲效之前滚动?
    • 是的,不要使用“盲目”效果。使用快速或其他方式。
    • 你知道一种方法可以让它在盲点效果发生之前平滑地向后滚动吗?
    • 您必须将 div 溢出设置为隐藏,仅适用于静态高度,如果您的 div 内容高于容器,您可能需要使用 JavaScript 滚动内容,或者更改为溢出隐藏,当当内容被暴露时,会触发盲并返回自动溢出。
    猜你喜欢
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多