Open In App

Create a Splash Page App in HTML CSS & JavaScript

The Splash Screen is the UI element that appears as the initial screen or the loading screen. Splash Page Application consists of a styled animative splash screen effect which automatically makes the curtain opening splash effect into the application for a specific time and renders the dynamic content once the effect is been completed. We will develop this Splash Page Animative effect using HTML, CSS, and JavaScript.

Preview Image:



Prerequisites:

Approach:

Project Structure:

Example: This example describes the basic implementation for a Splash Page App in HTML CSS and JavaScript






document.addEventListener("DOMContentLoaded",
 function () {
    setTimeout(function () {
        document.getElementById("preloader")
        .style.display = "none";
        setTimeout(function ()
        {
            document.getElementById("splash")
            .style.display = "none";
            document.getElementById("content")
            .style.display = "block";
            addLiveAnimations();
        }, 3000);
    }, 1000);
});




<!DOCTYPE html>
 
<head>
    <title>GeeksforGeeks</title>
    <link rel="stylesheet"
          href=
    <link rel="stylesheet"
          href=
    <link href=
          rel="stylesheet">
    <link rel="stylesheet"
          href="styles.css">
</head>
 
<body>
    <div id="preloader">
        <div id="loader"></div>
    </div>
    <div id="splash" class="animated-splash">
        <div class="curtain">
            <div class="splash-content">
                <i class="fas fa-spin fa-spinner"></i>
                <h1 class="animated-title">GeeksforGeeks</h1>
                <h3 class="animated-subtitle">Learn, Code, Contribute!</h3>
                <div class="animated-emoji" id="loadingEmoji">
                    😍
                </div>
            </div>
            <div class="additional-splash-effects"></div>
        </div>
    </div>
    <div id="content" style="display: none;">
        <div class="card">
            <h1>
                <i class="fas fa-code">
                </i> GeeksforGeeks
            </h1>
            <p>Learn, Code, Contribute!</p>
            <div class="animated-emoji" id="geeksEmoji">
                🤓
            </div>
        </div>
    </div>
    <script src=
    </script>
    <script src="app.js">
    </script>
</body>
 
</html>




body {
    font-family: 'Montserrat', sans-serif;
    margin: 0;
    padding: 0;
    height: 100vh;
    overflow: hidden;
    background: linear-gradient(135deg, #3498db, #8e44ad);
}
 
#preloader {
    position: fixed;
    width: 100%;
    height: 100%;
    background: #fda56b;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
 
#loader {
    border: 8px solid #f3f3f3;
    border-top: 8px solid #3498db;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
}
 
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
 
    100% {
        transform: rotate(360deg);
    }
}
 
#splash {
    height: 100vh;
    display: flex;
    align-items: flex-end;
}
 
.curtain {
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
    overflow: hidden;
    animation: curtainAnimation 4s ease-out forwards, gradientAnimation 3s ease-out forwards;
}
 
.splash-content {
    text-align: center;
    padding: 20px;
    color: #fff;
    position: relative;
    z-index: 2;
}
 
.splash-content i {
    font-size: 2em;
}
 
.additional-splash-effects {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #ff6b6b, #8e44ad, #3498db, #e74c3c);
    animation: backgroundAnimation 20s infinite alternate;
    z-index: 1;
}
 
#content {
    text-align: center;
    position: relative;
}
 
.card {
    background-color: #dbca34;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    margin: 20px;
    color: rgb(255, 0, 0);
    width: 300px;
    animation: cardAnimation 1.5s ease-out;
}
 
.card i {
    margin-right: 5px;
}
 
.animated-emoji {
    font-size: 2em;
    margin-top: 10px;
    animation: bounce 1s infinite;
}
 
.animated-title {
    animation: fadeInDown 1.5s ease-out;
}
 
.animated-subtitle {
    animation: fadeInUp 1.5s ease-out;
}
 
@keyframes curtainAnimation {
    0% {
        transform: translateY(100%);
    }
 
    100% {
        transform: translateY(0);
    }
}
 
@keyframes gradientAnimation {
    0% {
        opacity: 0;
    }
 
    100% {
        opacity: 1;
    }
}
 
@keyframes backgroundAnimation {
    0% {
        background-position: 0% 50%;
    }
 
    100% {
        background-position: 100% 50%;
    }
}
 
@keyframes cardAnimation {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
 
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
 
@keyframes bounce {
 
    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }
 
    40% {
        transform: translateY(-20px);
    }
 
    60% {
        transform: translateY(-10px);
    }
}
 
@keyframes fadeInDown {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
 
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
 
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
 
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

Output:


Article Tags :