0

さまざまなセクションを持つ Web サイトがあり、それぞれがブラウザー ウィンドウの高さに設定されています。場合によっては、コンテンツがブラウザー ウィンドウよりも高いことがあります。関数を使用してこれを確認し、次の関数を使用して div の高さをコンテンツの高さに設定します。

$('.container').each(function() {
        var _this = $(this);
        var this_ = this;
        var windowH = $(window).height();
        var textH = $('.text', this).height();
        if(windowH < textH) {                            
            $(this).css({'height': textH + 'px'});
        }
        else {
            $(this).css({'height': windowH + 'px'});
        }
        $(window).resize(function(){
            var windowH = $(window).height();
            var textH = $('.text', this_).height();
            if(windowH < textH) {
                _this.css({'height': textH + 'px'});
            }
            else {
                _this.css('height', windowH + 'px');
            }

        });         
    });

私が抱えている問題は、コンテンツを動的に非表示および表示したいということです。新しいコンテンツが div の現在の高さよりも高い場合、div を展開してそれを含めるようにします。機能を使用していますが、

$('#container').on('click', 'p', function () {
    $(this).height('300px');
    var windowH = $(window).height();
    $('#container').css({
        'height': ($('#container .text').height() + 'px')
    });
    var textH = $('#container').height();
    if (windowH < textH) {
        $('#container').css({
            'height': textH + 'px'
        });
    } else {
        $('#container').css('height', windowH + 'px');
    }

});

しかし、成功しませんでした。フィドルを作成しましたhttp://jsfiddle.net/wDRzY/

4

1 に答える 1