0

我一直在研究我的页面的功能,易用性是我一直关注的一件事。为了改进我的布局,我决定创建可折叠的部分。但是,我有两个问题。1)我可以将DIV设置为扩大,但不能再次缩小。所以我决定创建一些东西来告诉它是否大于最小尺寸,扩展内容,但是现在它也没有扩展。这是我的代码:

$(".contentBox").click(function(){
    var boxHeight = $(this).height();
    var minBoxHeight = 40;

    if (boxHeight < minBoxHeight)(function() {
        $(this).css({
            height: 'auto',
            transition: 'height 800ms, background 800ms, box-shadow 800ms'
        });
    )};
});

2)因为我正在使用自动高度,这是一种做事方式,所以我牺牲了我的滑动动画,当它展开和折叠时。但是,如果有人知道一种方法来保持高度变化为内容大小以及保持我想要的动画,那就太棒了。

4

1 回答 1

5

你打错了:

$(".contentBox").click(function(){
        var boxHeight = $(this).height();
        var minBoxHeight = 40;

        if (boxHeight <= minBoxHeight) {
            $(this).css('height', 'auto');
            var tmp_height = $(this).height();
            $(this).css('height', boxHeight+'px');
            $(this).css({
                height : tmp_height+'px',
                transition: 'height 800ms, background 800ms, box-shadow 800ms'
            });
        } else {
            $(this).css({
                height: '40px',
                transition: 'height 800ms, background 800ms, box-shadow 800ms'
            });
        }
    });

那会让它膨胀和崩溃

我相信这会解决所有问题。您可以将包含内容的 div 的高度计算为变量。将其重置为原始位置。然后进行过渡。

这是一个jsfiddle。我无法让它与过渡一起使用,但让它与动画一起使用:

http://jsfiddle.net/uLabL/

于 2013-01-09T10:57:45.100 回答