javascript - 当其中的所有图像都已加载时显示 div 元素

标签 javascript jquery html css

我有以下 div 元素,我在其中加载图像。我只想在所有图像都加载到其中时显示 div#main-slider:

我尝试了以下 jQuery:

$(window).load(function() {  
    $('#main-slider').animate({'opacity':1}, 300);
});

但它会显示 div,即使所有图像都没有加载。

CSS

#main-slider,
#main-slider #bo,
#main-slider #bg,
#main-slider #hugo{
    -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -moz-opacity:0;
    -khtml-opacity: 0;
    opacity: 0;
}

HTML

<div id="main-slider" class="flexslider">
    <div id="boss" class="tab-container">
        <ul class="slides boss-slides clearfix">
            <li id="1">
                <img src="mobilelp/img/boss_mobile_1.png" />
            </li>
            <li id="2">
                <img src="mobilelp/img/boss_mobile_2.png" />
            </li>
            <li id="3">
                <img src="mobilelp/img/boss_mobile_3.png" />
            </li>
        </ul>
    </div>
    <div id="bo" class="tab-container">
        <ul class="slides bo-slides clearfix">
            <li id="1">
                <img src="mobilelp/img/bo_mobile_1.png" />
            </li>
            <li id="2">
                <img src="mobilelp/img/bo_mobile_2.png" />
            </li>
            <li id="3">
                <img src="mobilelp/img/bo_mobile_3.png" />
            </li>
        </ul>
    </div>
    <div id="bg" class="tab-container">
        <ul class="slides bg-slides clearfix">
            <li id="1">
                <img src="mobilelp/img/bg_mobile_1.png" />
            </li>
            <li id="2">
                <img src="mobilelp/img/bg_mobile_2.png" />
            </li>
            <li id="3">
                <img src="mobilelp/img/bg_mobile_3.png" />
            </li>
        </ul>
    </div>
    <div id="hugo" class="tab-container">
        <ul class="slides hugo-slides clearfix">
            <li id="1">
                <img src="mobilelp/img/hugo_mobile_1.png" />
            </li>
            <li id="2">
                <img src="mobilelp/img/hugo_mobile_2.png" />
            </li>
            <li id="3">
                <img src="mobilelp/img/hugo_mobile_3.png" />
            </li>
        </ul>
    </div>
    <ul class="flex-direction-nav">
        <li><a href="#" class="flex-prev">Previous</a>
        </li>
        <li><a href="#" class="flex-next">Next</a>
        </li>
    </ul>
</div>

最佳答案

我也有这个需求。我使用 imagesLoaded plugin 找到了成功.

基于我目前在我的应用程序中使用的伪代码:

$('#main-slider').imagesLoaded({
    progress: function (isBroken, $allImages, $loadedImages, $brokenImages) {
        console.log('ok: ' + $loadedImages.length + ', bad: ' + $brokenImages.length);
    },
    done: function ($images) {
        $('#main-slider').animate({'opacity':1}, 300);
    }
});

关于javascript - 当其中的所有图像都已加载时显示 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388600/

相关文章:

javascript - 单击按钮时如何删除 iframe

javascript - 如果用户未登录,则重定向到主页时出现内存泄漏错误

javascript - stopPropagation() 提交时不起作用

javascript - jquery TimeCircles 卡住了

php - 使用 jQuery 将值发送到另一个页面

html - justify-content 和 flex-grow 被忽略

javascript - 每 x 个字符强制换行,但保留单词不被剪切

jquery - 收集选定表格单元格中的所有电子邮件地址

javascript - 无法更新 JavaScript 全局变量

html - 导航栏右侧的白色边缘/ block ?(HTML)