2016-10-26 220 views
0

我有一个div,将始终填充100%的浏览器高度。现在我想将其宽度设置为相同的值(包括屏幕大小调整)。jQuery - 设置div宽度等于高度

HTML:

<main> 
    <div id="mainCircle"> 
    </div> 
</main> 

CSS:

body, html { 
    height: 100%; 
    margin: 0; 
    padding: 0; 
} 

main { 
    height: 100%; 
    width: 100%; 
    overflow: hidden; 
} 

#mainCircle { 
    height: 100%; 
    border-radius: 50%; 
    background-color: gray; 
} 

JS:

$(document).ready(function() { 
    $('#mainCircle').width($('#mainCircle').height); 
    $(window).resize(function() { 
    $('#mainCircle').width($('#mainCircle').height); 
    }) 
}) 

如果我在价值传递为$('#mainCircle').width的数量 - 例如100像素,这将工作,但不是动态的。我究竟做错了什么?

回答

3

在jQuery的height()是一个函数,而不是一个性质

$(document).ready(function() { 

    $(window).on('resize', function() { 
     $('#mainCircle').width($('#mainCircle').height()); 
    }).trigger('resize'); 

}); 
+0

,为什么你会再次触发调整? – zfrisch

+1

@zfrisch - 因为我删除了OP代码中用于设置第一个页面加载高度的行,并且只是触发了事件 – adeneo

+2

它避免了两次写入同一个语句(一次就绪,再次调整大小)。当DOM准备就绪时,手动触发调整大小的功能。 –