使用CSS实现全屏加载特效,网站加载体验优化

在现代互联网发展的时代,用户越来越注重网站性能和用户体验。在这种情况下,对于任何网站开发人员来说,优化网站加载速度和用户体验都是十分重要的任务。为了提高网站加载体验和用户体验,本文将向大家介绍一种方法,即通过CSS代码实现网站全屏加载动画特效。

具体实现如下

1.HTML放在body开头即可

[lv]

    <!-- 懒加载组件 -->
    <div id="loading">
        <div class="loading">
            <div style="--x:0"></div>
            <div style="--x:1"></div>
            <div style="--x:2"></div>
            <div style="--x:3"></div>
            <div style="--x:4"></div>
            <div style="--x:5"></div>
        </div>
    </div>

[/lv]

2.JS最后加载完成使用js删除,放在body尾部即可

[lv]

    <script>
        // 停止懒加载,展示页面
        window.addEventListener('load', function () {
            var loading = document.getElementById('loading');
            loading.parentNode.removeChild(loading);
        });
    </script>

[/lv]

3.CSS绘画加载特效添加到全局css文件中

[lv]

        #loading {
            position: fixed;
            width: 100%;
            height: 100vh;
            z-index: 9999;
            background-color: #eef1f5;
            top: 0;
        }

        .loading {
            display: flex;
            flex-direction: row;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }

        .loading div {
            position: relative;
            min-width: 40px;
            height: 200px;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.05), #eef1f5);
            margin: 20px;
            border-radius: 20px;
            border: 2px solid #eef1f5;
            box-shadow: 15px 15px 20px rgba(0, 0, 0, 0.1),
                -15px -15px 20px #fff,
                inset -5px -5px 5px rgba(255, 255, 255, 0.5),
                inset 5px 5px 5px rgba(0, 0, 0, 0.05);
            overflow: hidden;
        }

        .loading div::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            box-shadow: inset -5px -5px 5px rgba(0, 0, 0, 0.1),
                0 420px 0 400px lightskyblue;
            animation: animate 2s ease-in-out infinite;
            animation-delay: calc(var(--x) * -0.3s);
            transform: translateY(160px);
        }

        @keyframes animate {
            0% {
                transform: translateY(160px);
                filter: hue-rotate(0deg);
            }

            50% {
                transform: translateY(0px);
                filter: hue-rotate(180deg);
            }

            100% {
                transform: translateY(160px);
                filter: hue-rotate(360deg);
            }
        }

[/lv]

以上方法的实现可以让网站加载时展示出优美的加载特效。