在调整大小时重新计算高度
Making Height Recalculate on Resize
请参阅 CODEPEN 以获得清晰度:http://codepen.io/geochanto/pen/LGNWML
var maxHeight = 0;
$('li a').each(function() {
maxHeight = maxHeight > $(this).outerHeight() ? maxHeight : $(this).outerHeight();
var linkHeight = $(this).outerHeight();
var halfLinkHeight = parseInt(linkHeight / -2);
$(this). css({
'margin-top' : halfLinkHeight,
'height' : maxHeight
});
});
$("li").css("height", maxHeight);
所以我有这段代码可以计算链接的高度,然后使它们都成为最高链接的高度,并在顶部添加一些负边距,以便在它们各自的父项内垂直居中对齐它们。一切如我所愿,除了,我一直在努力让这个高度 重新计算并应用到 <li>
和 <a>
on window resize用了各种方法,但 none 奏效了。
我已经试过了,但也许我的语法有误,idk:
- How to create a jQuery function (a new jQuery method or plugin)?
- Run Jquery function on window events: load, resize, and scroll?
- How to call a function in jQuery on window resize?
我在这里为你工作:http://codepen.io/anon/pen/RraVZE
您的 css 和 javascript 进行了一些更改。
我从你的 a 标签中删除了绝对定位:
a {
display: block;
padding: 10px;
margin-left: 50px;
font-size: 16px;
line-height: 1.2;
font-family: "montserrat", Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #193170;
text-decoration: none;
word-wrap: break-word;
}
并修改了你的JavaScript:
$(document).ready(function() {
var maxHeight = 0;
function calculateHeight() {
$('li a').each(function() {
maxHeight = maxHeight > $(this).outerHeight() ? maxHeight : $(this).outerHeight();
});
$("li").css("height", maxHeight);
centerText();
}
function centerText() {
$('li a').each(function() {
var linkHeight = $(this).outerHeight();
var halfLinkHeight = parseInt((maxHeight - linkHeight) / 2);
$(this).css('margin-top', halfLinkHeight);
});
}
$(window).resize(function() {
calculateHeight();
});
calculateHeight();
});
请参阅 CODEPEN 以获得清晰度:http://codepen.io/geochanto/pen/LGNWML
var maxHeight = 0;
$('li a').each(function() {
maxHeight = maxHeight > $(this).outerHeight() ? maxHeight : $(this).outerHeight();
var linkHeight = $(this).outerHeight();
var halfLinkHeight = parseInt(linkHeight / -2);
$(this). css({
'margin-top' : halfLinkHeight,
'height' : maxHeight
});
});
$("li").css("height", maxHeight);
所以我有这段代码可以计算链接的高度,然后使它们都成为最高链接的高度,并在顶部添加一些负边距,以便在它们各自的父项内垂直居中对齐它们。一切如我所愿,除了,我一直在努力让这个高度 重新计算并应用到 <li>
和 <a>
on window resize用了各种方法,但 none 奏效了。
我已经试过了,但也许我的语法有误,idk:
- How to create a jQuery function (a new jQuery method or plugin)?
- Run Jquery function on window events: load, resize, and scroll?
- How to call a function in jQuery on window resize?
我在这里为你工作:http://codepen.io/anon/pen/RraVZE
您的 css 和 javascript 进行了一些更改。
我从你的 a 标签中删除了绝对定位:
a {
display: block;
padding: 10px;
margin-left: 50px;
font-size: 16px;
line-height: 1.2;
font-family: "montserrat", Arial, Helvetica, sans-serif;
text-transform: uppercase;
color: #193170;
text-decoration: none;
word-wrap: break-word;
}
并修改了你的JavaScript:
$(document).ready(function() {
var maxHeight = 0;
function calculateHeight() {
$('li a').each(function() {
maxHeight = maxHeight > $(this).outerHeight() ? maxHeight : $(this).outerHeight();
});
$("li").css("height", maxHeight);
centerText();
}
function centerText() {
$('li a').each(function() {
var linkHeight = $(this).outerHeight();
var halfLinkHeight = parseInt((maxHeight - linkHeight) / 2);
$(this).css('margin-top', halfLinkHeight);
});
}
$(window).resize(function() {
calculateHeight();
});
calculateHeight();
});