Icon Animation


BASIC CODE:-

 <!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Formal Interactive Social Icons</title>

    

    <style>

        body {

            background-color: #f7f3e8; 

            display: flex;

            justify-content: center;

            align-items: center;

            min-height: 100vh; 

            margin: 0;

            font-family: 'Georgia', serif; 

            color: #333333;

        }


        .main-container {

            display: flex;

            flex-direction: column;

            align-items: center;

        }


        .social-icons-container {

            display: flex;

            gap: 50px;

            padding: 30px;

            background: #ffffff;

            border-radius: 15px;

            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); 

            margin-bottom: 40px;

        }



        .icon-item {

            cursor: pointer;

            height: 80px;

            width: 80px;

            display: flex;

            justify-content: center;

            align-items: center;

            border-radius: 50%;

            background-color: #ffffff;

            transition: all 0.3s ease-in-out; 

            box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);

        }

        

        .icon-item img {

            height: 45px;

            width: 45px;

            transition: transform 0.3s ease-in-out;

        }


        .icon-item:hover {

            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15), inset 0 0 10px rgba(255, 255, 255, 0.5);

            transform: translateY(-3px);

        }

        

        .icon-item:hover img {

            transform: scale(1.1);

        }


        .info-display {

            width: 80%;

            max-width: 600px;

            padding: 25px;

            background-color: #ffffff;

            border-radius: 10px;

            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);

            text-align: center;

            border-left: 5px solid #cccccc; 

            opacity: 0;

            transform: translateY(30px);

            transition: opacity 0.5s ease-out, transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);

        }


        .info-display.active {

            opacity: 1;

            transform: translateY(0);

        }


        #network-title {

            font-size: 1.8em;

            margin-top: 0;

            margin-bottom: 10px;

            color: #000000;

        }


        #network-info {

            font-size: 1.1em;

            line-height: 1.6;

            color: #555555;

        }

    </style>

</head>

<body>

    

    <div class="main-container">

        <div class="social-icons-container">

            <div class="icon-item" data-network="Instagram" 

                 data-info="Instagram is a visual platform focused on photo and video sharing. Great for building brand aesthetics and direct engagement."

                 data-color="#E4405F">

                <img src="https://cdn-icons-png.flaticon.com/128/2111/2111463.png" alt="Instagram Icon">

            </div>


            <div class="icon-item" data-network="Twitter (X)" 

                 data-info="Twitter (X) is a microblogging service for real-time news, short updates, and public conversations. Essential for immediate communication."

                 data-color="#1DA1F2">

                <img src="https://cdn-icons-png.flaticon.com/128/733/733579.png" alt="Twitter Icon">

            </div>


            <div class="icon-item" data-network="Facebook" 

                 data-info="Facebook is the largest social network, used for community building, long-form content, and targeted advertising to broad demographics."

                 data-color="#4267B2">

                <img src="https://cdn-icons-png.flaticon.com/128/145/145802.png" alt="Facebook Icon">

            </div>

        </div>

        

        <div id="info-display" class="info-display">

            <h2 id="network-title"></h2>

            <p id="network-info"></p>

        </div>

    </div>


    <script>

        document.addEventListener('DOMContentLoaded', () => {

            const iconItems = document.querySelectorAll('.icon-item');

            const infoDisplay = document.getElementById('info-display');

            const networkTitle = document.getElementById('network-title');

            const networkInfo = document.getElementById('network-info');


            iconItems.forEach(icon => {

                icon.addEventListener('click', function() {

                    

                    // 1. Get Data from the clicked icon

                    const network = this.getAttribute('data-network');

                    const info = this.getAttribute('data-info');

                    const color = this.getAttribute('data-color');


                    // 2. Hide current information first (to reset the animation)

                    infoDisplay.classList.remove('active');

                    

                    // 3. Update the content

                    networkTitle.textContent = network;

                    networkInfo.textContent = info;

                    

                    // 4. Update formal design elements (color)

                    networkTitle.style.color = color;

                    infoDisplay.style.borderLeftColor = color;


                    // 5. Add 'jump' effect (using a small delay to trigger the transition)

                    setTimeout(() => {

                        infoDisplay.classList.add('active');

                    }, 10); 

                });

            });

        });

    </script>

</body>

</html>

Post a Comment

Previous Post Next Post