我正在使用Unslider,滑块工作正常
我在每个<li>
和<h1>
作为幻灯片的标题
我有一个 resizeH1()
函数来调整此<h1>
的大小:
function resizeH1() {
var $h1 = $('.entry-header h1');
if (window.innerWidth >= 768) {
// Calculate the total height of the element
var totalHeight = ($h1.height());
var numOfLines = totalHeight / 88;
// Force this element height to always be 88px
$h1.height(88);
// Adjust $h1 font-size depending on it's number of lines
if (numOfLines === 2) {
$h1.css('font-size', '42px');
} else if (numOfLines === 3) {
$h1.css('font-size', '40px');
} else if (numOfLines === 4) {
$h1.css('font-size', '38px');
} else if (numOfLines >= 5) {
$h1.css('font-size', '28px');
}
// Align the $h1 text verticaly at the very end
if (numOfLines >= 2) {
$h1.css({
'text-align': 'center',
'display': 'flex',
'justify-content': 'center',
'align-items': 'flex-end'
});
}
} else {
// Reset the $h1 state when (window.innerWidth < 768)
$h1.css({
'height': '',
'font-size': '',
'text-align': '',
'display': '',
'justify-content': '',
'align-items': ''
});
}
}
我的问题是此功能仅适用于第一个<h1>
的第一个<li>
,
其他人<h1>
中的其他人<li>
与第一个人font-size
相同!
如何在每个resizeH1()
而不是第一个<li>
上运行{{1}}?
在发布之前,我已经尝试过所有我认识并搜索过的内容
非常感谢您提出任何建议/帮助。
答案 0 :(得分:1)
你需要一个循环结构。对于jQuery元素,您可以使用.each()。你的代码看起来像这样:
function resizeH1() {
$('.entry-header h1').each(function () {
$h1 = $(this);
if (window.innerWidth >= 768) {
// Calculate the total height of the element
var totalHeight = ($h1.height());
var numOfLines = totalHeight / 88;
// Force this element height to always be 88px
$h1.height(88);
(...)
}
});
有关详细信息,请参阅api.jquery.com/each/