欢迎您光临本店,本店提供多种个性化定制服务。

HTML和CSS动画:鼠标经过高亮效果

经营范围:电脑组装,电脑维修,智能家居设备,苹果电脑系统安装,苹果手机刷机,监控安装,媒体编辑,数据恢复,复印打印,网站制作等

640.gif

HTML:

<div id="box">

        <button>

            <span class="text">Hello World</span>

            <span class="spin"></span>

        </button>

    </div>

 

CSS:

body,

html {

    display: flex;

    padding: 0;

    background-image: radial-gradient(circle at 50% 0%,

            rgb(67, 54, 74) 16.4%,

            rgb(47, 48, 67) 68.2%,

            rgb(27, 23, 36) 99.1%);

    height: 100vh;

    overflow: hidden;

 

}

 

div#box {

    height: 100vh;

    width: 100vw;

    display: flex;

    align-items: center;

    justify-content: center;

}

 

:root {

    --glow-hue: 222deg;

    --shadow-hue: 180deg;

    --spring-easing: linear(0, 0.002, 0.01 0.9%, 0.038 1.8%, 0.156, 0.312 5.8%, 0.789 11.1%, 1.015 14.2%,

            1.096, 1.157, 1.199, 1.224 20.3%, 1.231, 1.231, 1.226, 1.214 24.6%,

            1.176 26.9%, 1.057 32.6%, 1.007 35.5%, 0.984, 0.968, 0.956, 0.949 42%,

            0.946 44.1%, 0.95 46.5%, 0.998 57.2%, 1.007, 1.011 63.3%, 1.012 68.3%,

            0.998 84%, 1);

    --spring-duration: 1.33s;

}

 

@property --spin {

    syntax: "<angle>";

    inherits: false;

    initial-value: 33deg;

}

 

@keyframes spin {

    0% {

        --spin: 0deg;

    }

 

    100% {

        --spin: 360deg;

    }

}

 

@keyframes shine {

    0% {

        opacity: 1;

    }

 

    15% {

        opacity: 1;

    }

 

    55% {

        opacity: 1;

    }

 

    100% {

        opacity: 0;

    }

}

 

@keyframes text {

    0% {

        background-position: 100% center;

    }

 

    100% {

        background-position: -100% center;

    }

}

 

button {

    

    font-weight: 600;

    /* background-image: linear-gradient(90deg, #fcecfe, #fbf6e7, #e6fcf5); */

    background-image: linear-gradient(315deg,

            #1bbdcc -10%,

            #3142df 50%,

            #75b4e0 110%);

    padding: .8em 1.4em;

    position: relative; color:#333;

    isolation: isolate;

    box-shadow: 0 2px 3px 1px hsl(var(--glow-hue) 50% 20% / 50%), inset 0 -10px 20px -10px hsla(var(--shadow-hue), 10%, 90%, 95%);

    border-radius: 0.66em;

    scale: 1;

    transition: all var(--spring-duration) var(--spring-easing);

}

 

button:hover:not(:active),

button.active {

    transition-duration: calc(var(--spring-duration)*0.5);

    scale: 1.2;

    box-shadow: 0 4px 8px -2px hsl(var(--glow-hue) 50% 20% / 50%), inset 0 0 0 transparent;

}

 

button:active {

    scale: 1.1;

    transition-duration: calc(var(--spring-duration)*0.5);

}

 

.spin {

    position: absolute;

    inset: -40px;

    border-radius: inherit;

    mask-image: conic-gradient(from var(--spin, 0deg),

            transparent 0%,

            transparent 10%,

            black 36%,

            black 45%,

            transparent 50%,

            transparent 60%,

            black 85%,

            black 95%,

            transparent 100%);

    mask-size: cover;

    mix-blend-mode: plus-lighter;

    animation: spin 1s linear infinite both;

}

 

button:hover .spin::before,

button:hover .spin::after,

button.active .spin::before,

button.active .spin::after {

    opacity: 1;

    animation: shine 1.2s ease-in 1 forwards;

}

 

.spin::before,

.spin::after {

    transition: all 0.5s ease;

    opacity: 0;

    content: "";

    border-radius: inherit;

    position: absolute;

    mix-blend-mode: color;

    inset: 40px;

    pointer-events: none;

}

 

.spin::before {

    box-shadow: 0 0 3px 2px hsl(var(--glow-hue) 20% 95%),

        0 0 7px 4px hsl(var(--glow-hue) 20% 80%),

        0 0 13px 4px hsl(var(--glow-hue) 50% 70%),

        0 0 25px 5px hsl(var(--glow-hue) 100% 70%);

    z-index: -1;

}

 

.spin::after {

    box-shadow: inset 0 0 0 1px hsl(var(--glow-hue) 70% 95%),

        inset 0 0 2px 1px hsl(var(--glow-hue) 100% 80%),

        inset 0 0 5px 2px hsl(var(--glow-hue) 100% 70%);

    z-index: 2;

}

 

button .text {

    background-clip: text;

    background-color: var(--bg);

    background-image: linear-gradient(120deg, transparent, hsla(var(--glow-hue), 100%, 80%, 0.66) 40%, hsla(var(--glow-hue), 100%, 90%, .9) 50%, transparent 52%);

    background-repeat: no-repeat;

    background-size: 300% 300%;

    background-position: center 200%;

}

 

button:hover .text,

button.active .text {

    animation: text .66s ease-in 1 both;

}

 

 

来源:本文由天寻工作室原创撰写,欢迎分享本文,转载请保留出处和链接!