wzp
2026-04-01 90fecfa743b1296e3571eee74a5a2df79a8697de
添加预加载动画
1个文件已添加
177 ■■■■■ 已修改文件
映星教育/预加载动画 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Ó³ÐǽÌÓý/Ô¤¼ÓÔØ¶¯»­
New file
@@ -0,0 +1,177 @@
<link rel="preload" href="/wp-content/uploads/2026/03/YSBTH.ttf" as="font" type="font/ttf" crossorigin="anonymous">
<style>
    /* 2. å•独引入字体,确保预加载动画能第一时间读取,不干等 Elementor */
    @font-face {
        font-family: '优设标题黑';
        /* ã€æ³¨æ„ï¼šè¯·æŠŠ url é‡Œçš„链接也替换成你真实的 ttf å­—体链接,和上面保持一致】 */
        src: url('/wp-content/uploads/2026/03/YSBTH.ttf') format('truetype');
        font-display: swap;
    }
    /* æ·»åŠ äº† ys_edu_ å‰ç¼€ä»¥é˜²æ­¢ä¸Ž WordPress ä¸»é¢˜å†²çª */
    #ys_edu_custom-preloader {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background: linear-gradient(to right, #00d1fe, #a5fed9);
        z-index: 999999;
        display: none; /* â† æ”¹ä¸º none */
        justify-content: center;
        align-items: center;
        transition: opacity 0.6s ease;
    }
    .ys_edu_preloader-wrapper {
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .ys_edu_img1 {
        height: 120px;
        display: block;
    }
    /* åˆå§‹çŠ¶æ€ï¼šå›¾ç‰‡ç¼©æ”¾ä¸º0 */
    .ys_edu_img1-container {
        transform: scale(0);
        margin-top: -20px;
    }
    /* åˆå§‹çŠ¶æ€ï¼šæŠ½å±‰å®½åº¦ä¸º0 */
    .ys_edu_text-container {
        width: 0;
        overflow: hidden;
        margin-left: 0;
        display: flex;
        align-items: center;
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent 100%);
        mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent 100%);
    }
    /* åˆå§‹çŠ¶æ€ï¼šå­—ç¬¦é€æ˜Žã€åç§»ã€æ¨¡ç³Š */
    .ys_edu_char {
        font-size: 80px;
        font-weight: 400;
        /* å·²ç»ä¿®æ”¹ä¸ºè°ƒç”¨ä¸Šæ–¹å£°æ˜Žçš„优设标题黑 */
        font-family: '优设标题黑', 'YouSheBiaoTiHei', sans-serif;
        color: #ffffff;
        display: inline-block;
        opacity: 0;
        transform: translateX(40px);
        filter: blur(12px);
    }
    /* ========================================= */
    /* å‘令枪:当 JS æ·»åŠ  ys_edu_start-anim ç±»ååŽåŠ¨ç”»å¼€å§‹ */
    /* ========================================= */
    /* 1. è§¦å‘图片放大 */
    .ys_edu_start-anim .ys_edu_img1-container {
        animation: ys_edu_zoomIn 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
    }
    /* 2. è§¦å‘抽屉拉出 */
    .ys_edu_start-anim .ys_edu_text-container {
        animation: ys_edu_slideTextDrawer 1.2s cubic-bezier(0.25, 1, 0.5, 1) 1s forwards;
    }
    /* 3. è§¦å‘逐字显现 */
    .ys_edu_start-anim .ys_edu_char {
        animation: ys_edu_charFadeIn 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        animation-delay: calc(1s + var(--i) * 0.1s);
    }
    @keyframes ys_edu_zoomIn {
        0% { transform: scale(0); opacity: 0; }
        100% { transform: scale(1); opacity: 1; }
    }
    @keyframes ys_edu_slideTextDrawer {
        0% { width: 0; margin-left: 0; }
        100% { width: 480px; margin-left: 20px; }
    }
    @keyframes ys_edu_charFadeIn {
        0% { opacity: 0; transform: translateX(40px); filter: blur(12px); }
        100% { opacity: 1; transform: translateX(0); filter: blur(0px); }
    }
</style>
<div id="ys_edu_custom-preloader">
    <div class="ys_edu_preloader-wrapper">
        <div class="ys_edu_img1-container">
            <img id="ys_edu_preloader-logo" src="" alt="YStar Edu Logo" class="ys_edu_img1">
        </div>
        <div class="ys_edu_text-container">
            <span class="ys_edu_char" style="--i:1">Y</span>
            <span class="ys_edu_char" style="--i:2">S</span>
            <span class="ys_edu_char" style="--i:3">t</span>
            <span class="ys_edu_char" style="--i:4">a</span>
            <span class="ys_edu_char" style="--i:5">r</span>
            <span class="ys_edu_char" style="--i:6">&nbsp;</span>
            <span class="ys_edu_char" style="--i:7">E</span>
            <span class="ys_edu_char" style="--i:8">d</span>
            <span class="ys_edu_char" style="--i:9">u</span>
        </div>
    </div>
</div>
<script>
    // ç«‹å³æ‰§è¡Œï¼šåˆ¤æ–­æœ¬åœ°æ˜¯å¦å·²ç»è®°å½•过播放状态
    (function() {
        if (!localStorage.getItem('ys_edu_preloader_shown')) {
            var preloader = document.getElementById('ys_edu_custom-preloader');
            if (preloader) preloader.style.display = 'flex';
        }
    })();
</script>
<script>
    document.addEventListener('DOMContentLoaded', function() {
        const preloader = document.getElementById('ys_edu_custom-preloader');
        // å†æ¬¡ç¡®è®¤ï¼šå¦‚果已经播放过,直接跳过后续的 JS åŠ¨ç”»é€»è¾‘
        if (localStorage.getItem('ys_edu_preloader_shown')) {
            return;
        }
        const logoUrl = "/wp-content/uploads/2026/03/preload-logo.webp";
        const img = new Image();
        img.src = logoUrl;
        img.onload = function() {
            const logoElement = document.getElementById('ys_edu_preloader-logo');
            if (preloader && logoElement) {
                logoElement.src = logoUrl;
                preloader.classList.add('ys_edu_start-anim');
                const animStartTime = Date.now();
                window.addEventListener('load', function() {
                    const minTime = 3000;
                    const checkInterval = setInterval(function() {
                        if (Date.now() - animStartTime >= minTime) {
                            clearInterval(checkInterval);
                            preloader.style.opacity = '0';
                            setTimeout(function() {
                                preloader.style.display = 'none';
                                // åŠ¨ç”»ç»“æŸï¼Œå°†çŠ¶æ€æ°¸ä¹…å†™å…¥ç”¨æˆ·çš„æµè§ˆå™¨æœ¬åœ°å­˜å‚¨
                                localStorage.setItem('ys_edu_preloader_shown', 'true');
                            }, 600);
                        }
                    }, 100);
                });
            }
        };
        img.onerror = function() {
            if (preloader) preloader.style.display = 'none';
            // å³ä½¿å›¾ç‰‡åŠ è½½å¤±è´¥ï¼Œä¹Ÿæ ‡è®°ä¸ºå·²æ’­æ”¾ï¼Œé¿å…æ¯æ¬¡åˆ·æ–°éƒ½å¡æ­»
            localStorage.setItem('ys_edu_preloader_shown', 'true');
        };
    });
</script>