jQuery load() 函数表现异常

标签 jquery html css dom

我试图将父元素的高度设置为等于子元素(图像)的高度。为此,我使用以下代码:

HTML

<section class="first">
    <div class="slidercontainer">
        <img src="images/1.jpg" alt="image1" class="image1">
        <img src="images/2.jpg" alt="image2" class="image2">
        <img src="images/3.jpg" alt="image3" class="image3">
        <img src="images/4.jpg" alt="image4" class="image4">
    </div>
</section>

CSS

.first{
    position: relative;
    margin-top: 30px;
    margin-bottom: 30px;
}

.first .slidercontainer{
    position: relative;
    margin: 0px auto;
    overflow: hidden;
    width: 80%;
    //border: 1px solid black;
    background-color: red;
}

.first .slidercontainer img{
    position: absolute;
    top: 0px;
    max-width: 100%;
}

.image1{
    left: 0px;
}

.image2{
    left: 100%;
}

.image3{
    left: 200%;
}

.image4{
    left: 300%;
}

jQuery

var sliderImage = $(".first .slidercontainer img:nth-child(1)");
$(sliderImage).load(function(){
    var sliderHeight = sliderImage.height();
    $(".slidercontainer").height(sliderHeight);
});

我正在使用 load() 函数,因为 .slidercontainer 的高度只能在 .image1 加载后设置。

几乎 工作正常。我遇到的问题是 .slidercontainer 的高度总是设置为 9px 大于 .image1 的高度。这可能是什么原因?

如果这是相关的:我对 resize() 函数使用相同的代码。它在那里工作得很好。所以当我重新加载页面,然后调整它的大小时,多余的 9px 就消失了。

最佳答案

尝试使用 .css 给出大小

<script type="text/javascript">
    $(".slidercontainer img").each(function(){

        $(this).on('load',function(){
            $height=$(this).height();
            $(".slidercontainer").css('height',$height);
        });
        //alert($height);

    });
</script>

关于jQuery load() 函数表现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36374390/

相关文章:

html - 在 HTML 文件中查找特定标签

html - 在 Rails 中渲染转义的 html

css - 减小 contenteditable 元素中光标的大小

javascript - 在 jQuery 中按类名对 Dom 元素进行计数

javascript - 使用 jquery 简单验证按钮单击操作

javascript - 移动网站中带有图像和文本的按钮的最佳实践

jquery - CSS过渡颜色渐进

javascript - 将下拉列表的值文本动态附加到另一个下拉列表

html - 在三个框的顶部显示 flex 标题

javascript - 将 Id 名称的一部分放入变量中