Nếu bạn muốn làm một biểu tượng để hướng dẫn người dùng kéo xuống để tiếp tục xem, bài viết này sẽ giúp bạn.

Làm biểu tượng kéo xuống để xem tiếp với CSS

HTML

<div class="mouse-container">
    <div class="mouse"></div>
    <p class="scroll-text">Scroll</p>
</div>

CSS

@import url(https://fonts.googleapis.com/css?family=Cabin);

@mixin bgGradient {
    background: #4e5559
        linear-gradient(
            transparent 0%,
            transparent 50%,
            #ffffff 50%,
            #ffffff 100%
        );
}

.mouse-container {
    height: 450px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #222a30;
}

p.scroll-text {
    margin-top: 50px;
    font-family: "Cabin", sans-serif;
    letter-spacing: 12px;
    text-indent: 12px;
    color: #ffffff;
    animation: colorText 5s ease-out infinite, nudgeText 5s ease-out infinite;
}

.mouse {
    @include bgGradient;
    position: relative;
    width: 52px;
    height: 88px;
    background-size: 100% 100%;
    border-radius: 100px;
    background-size: 225%;
    animation: colorSlide 5s linear infinite, nudgeMouse 5s ease-out infinite;
    &:before,
    &:after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
    }
    &:before {
        width: calc(52px - 6px);
        height: calc(88px - 6px);
        background-color: #222a30;
        border-radius: 100px;
    }
    &:after {
        background-color: #ffffff;
        width: 10px;
        height: 10px;
        border-radius: 100%;
        animation: trackBallSlide 5s linear infinite;
    }
}

@keyframes colorSlide {
    0% {
        background-position: 0% 100%;
    }
    20% {
        background-position: 0% 0%;
    }
    21% {
        background-color: #4e5559;
    }
    29.99% {
        background-color: #ffffff;
        background-position: 0% 0%;
    }
    30% {
        background-color: #4e5559;
        background-position: 0% 100%;
    }
    50% {
        background-position: 0% 0%;
    }
    51% {
        background-color: #4e5559;
    }
    59.99% {
        background-color: #ffffff;
        background-position: 0% 0%;
    }
    60% {
        background-color: #4e5559;
        background-position: 0% 100%;
    }
    80% {
        background-position: 0% 0%;
    }
    81% {
        background-color: #4e5559;
    }
    89.99%,
    100% {
        background-color: #ffffff;
    }
}

@keyframes trackBallSlide {
    0% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    6% {
        opacity: 1;
        transform: scale(0.9) translateY(20px/4);
    }
    14% {
        opacity: 0;
        transform: scale(0.4) translateY(20px * 2);
    }
    15%,
    19% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    28%,
    29.99% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    30% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    36% {
        opacity: 1;
        transform: scale(0.9) translateY(20px/4);
    }
    44% {
        opacity: 0;
        transform: scale(0.4) translateY(20px * 2);
    }
    45%,
    49% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    58%,
    59.99% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    60% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
    66% {
        opacity: 1;
        transform: scale(0.9) translateY(20px/4);
    }
    74% {
        opacity: 0;
        transform: scale(0.4) translateY(20px * 2);
    }
    75%,
    79% {
        opacity: 0;
        transform: scale(0.4) translateY(-20px);
    }
    88%,
    100% {
        opacity: 1;
        transform: scale(1) translateY(-20px);
    }
}

@keyframes nudgeMouse {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(8px);
    }
    30% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(8px);
    }
    60% {
        transform: translateY(0);
    }
    80% {
        transform: translateY(8px);
    }
    90% {
        transform: translateY(0);
    }
}

@keyframes nudgeText {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(2px);
    }
    30% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(2px);
    }
    60% {
        transform: translateY(0);
    }
    80% {
        transform: translateY(2px);
    }
    90% {
        transform: translateY(0);
    }
}

@keyframes colorText {
    21% {
        color: #4e5559;
    }
    30% {
        color: #ffffff;
    }
    51% {
        color: #4e5559;
    }
    60% {
        color: #ffffff;
    }
    81% {
        color: #4e5559;
    }
    90% {
        color: #ffffff;
    }
}

Ta được kết quả.

Scroll

5/5 (4 bình chọn)