调整大小窗口时调整元素的高度

时间:2015-09-26 15:22:35

标签: jquery html css

我遇到了jQuery的问题。无法弄清楚如何做到这一点。 我有多个部分宽度不同的高度:

<section id="1" class="something" style="height:111px; background:red;">1</section>
<section id="2" class="something" style="height:222px; background:blue;">2</section>
<section id="3" class="something" style="height:333px; background:green;">3</section>

当窗口小于500px时,我的jQuery会缩放每个部分的高度:

var org_height = $('.something').height();

$(window).resize(function() {

    $(".something").each(function() {

        var win = $(window).width();
        var height = $('.something').height();

        if(win < 500) {
            y = 500 - win;
            $('.something').css("height",org_height-y/3+"px");
        }
        else {
            $('.something').css("height",org_height+"px");
        }
    });   

});

JSFiddle:https://jsfiddle.net/owtz31jj/

如何存储每个部分的原始高度并根据每个高度缩放它们并再次返回原始高度。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery.fn.data

// Store original height for each .something
$(".something").each(function() {
    $(this).data('org_height', $(this).height());
});
$(window).on('resize', function() {
    var win = $(window).width();
    $(".something").each(function() {
        // Get the value storred in org_height using jQuery.fn.data
        var org_height = $(this).data('org_height'); 
        if(win < 500) {
            var y = 500 - win;
            $(this).css("height", org_height - y/3);
        }
        else {
            $(this).css("height", org_height);
        }
    });   
});