1

如何在页面加载时显示加载器并在加载时隐藏它?

$(document).ready(function() {
    $('.windowLoader').show().fadeOut(2000);
});

在页面开始加载很久之后显示加载器,有时在fadeOut页面加载之前完成的事件的 2000 毫秒持续时间。

无论如何,只要 DOM 准备好就执行加载器的显示并保持可见直到页面加载(而不是图像)然后隐藏加载器?

4

2 回答 2

4

为什么不将加载器直接放在文档中,然后准备好使用 jQuery 将其删除?例如

<div id="loading"></div>

$(document).ready(function() {
    $("#loading").fadeOut(function() {
        $(this).remove(); // Optional if it's going to only be used once.
    });
});

否则,如果您在方法顶部的$(document).ready()then .fadeIn()(/show/create) 加载栏中执行其他操作,请执行扩展代码,然后在底部调用.fadeOut()

如果您担心没有 JavaScript 的人会查看加载栏,那么建议您添加以下内容:

<noscript>
    <style> #loading { display:none; } </style>
</noscript>
于 2013-08-22T11:55:14.863 回答
0

它应该有助于根据您的代码对其进行自定义

  $(document).ready(function () {
            // calculate height
            var screen_ht = jQuery(window).height();
            var preloader_ht = 5;
            var padding = (screen_ht / 5) - preloader_ht;
            jQuery("#preloader").css("padding-top", padding + "px");


            // loading animation using script 

            function anim() {
                jQuery("#preloader_image").animate({ left: '1px' }, 2000,
                function () {
                    jQuery("#preloader_image"), animate({ left: '1px' }, 2000);
                }
                );
            }
            //anim();
        });
    function hide_preloader() {
    // To apply Fade Out Effect to the Preloader 
    jQuery("#preloader").fadeOut(1000);
    }
    </script>
<style>
    #preloader {background: #1c1c1c;position:fixed;left:0px; top:0px; width:100%; height:100%; text-align:center;color:#fff;z-index: 100000000;}
    #preloader div {width:228px;height:240px;margin:auto;padding:10px 0;text-align:center;overflow:hidden;}
    #preloader_image {width:228px;height:240px;position: relative;left:0px;top:-10px;}
</style>
</head>

<body id="home" onload="hide_preloader()">
    <div id="preloader">
        <div>
            <div id="preloader_image">
                <img src="loading.gif" style="position: absolute;bottom: 0;left: 35%;">
            </div>
        </div>
    </div>
    </body>
于 2013-08-22T11:58:00.740 回答