繁体   English   中英

使用javascript在一个元素上设置高度以匹配另一个元素

[英]Setting a height on an element to match another element using javascript

我有以下代码,正如标题说明的那样,它匹配页面上的两个元素以具有相同的高度:

//get sector sub navigation height
$(function() {

sectorHeight();

if(window.attachEvent) {
    window.attachEvent('onresize', sectorHeight);
}
else if(window.addEventListener) {
    window.addEventListener('resize', sectorHeight);
}

//get profile sub navigation height
profileHeight();

if(window.attachEvent) {
    window.attachEvent('onresize', profileHeight);
}
else if(window.addEventListener) {
    window.addEventListener('resize', profileHeight);
}

});


function sectorHeight() {
    var secHeight = $('#sector-content').height();
    $('.content-sub-nav').css('height', secHeight);  
}

function profileHeight() {
    var secHeight = $('.profile-article').height();
    $('.mod-profile-search').css('height', secHeight);  
}

当前,这在两个使用不同元素的不同页面上被调用。 我该如何编辑它以仅使用在页面加载和调整大小时都被调用的单个函数?

或者,也许您可​​以使用这种方法:

function fixHeights(){
    $('.js-same-height').each(function(){
        var self = $(this);
        var target = $(self.data('target'));
        self.height(target.height());
    });
}

它应该适用于同一页面上的多个不同元素。 您为动态元素提供类“ js-same-height”和属性“ data-target =“。css-selector”“,其中“ .css-selector”是要复制其元素的选择器高度。

这是如何在resize事件上使用它:

$(window).on('resize', fixHeights);

要么:

$(window).on('resize', function(){
    fixHeights();
});

我觉得你在匹配两个高度。 除了采用这种方法,您可以执行以下操作:

function makeCorrectHeights() {
    var maxHeight = max($(".autoheight"));
    $(".autoheight").css('height', maxHeight);  
}

可以在任何页面中调用它,那些具有.autoheight类的页面将调整为最大高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM