jQuery - 在每个<li>的Unslider上运行函数

时间:2018-03-29 20:18:57

标签: jquery css unslider

我正在使用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}}? 在发布之前,我已经尝试过所有我认识并搜索过的内容 非常感谢您提出任何建议/帮助。

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/