css实现宇宙星空按钮悬浮动画效果代码

代码语言:html

所属分类:悬停

代码描述:css实现宇宙星空按钮悬浮动画效果代码,刚开始是边框流动动画,鼠标放上去后,按钮背景显示宇宙星空运动。

代码标签: css 宇宙 星空 按钮 悬浮 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 


 
 
<style>
*,
*:after,
*:before {
        box-sizing: border-box;
}
:root {
        --transition: 0.25s;
        --spark: 1.8s;
        --hue: 245;
}

body {
        --active: 0;
        background: hsl(
                var(--hue)
                calc(var(--active) * 97%)
                6%
        );
        display: grid;
        place-items: center;
        min-height: 100vh;
        font-family: system-ui, sans-serif;
        transition: background var(--transition);
        overflow: hidden;
}

button {
        --cut: 0.1em;
        --active: 0;
        --bg:
                radial-gradient(
                        120% 120% at 126% 126%,
                        hsl(var(--hue) calc(var(--active) * 97%) 98% / calc(var(--active) * 0.9)) 40%,
                        transparent 50%
                ) calc(100px - (var(--active) * 100px)) 0 / 100% 100% no-repeat,
                radial-gradient(
                        120% 120% at 120% 120%,
                        hsl(var(--hue) calc(var(--active) * 97%) 70% / calc(var(--active) * 1)) 30%,
                        transparent 70%
                ) calc(100px - (var(--active) * 100px)) 0 / 100% 100% no-repeat,
                hsl(var(--hue) calc(var(--active) * 100%) calc(12% - (var(--active) * 8%)));
        background: var(--bg);
        font-size: 2rem;
        font-weight: 500;
        border: 0;
        cursor: pointer;
        padding: 0.9em 1.3em;
        display: flex;
        align-items: center;
        gap: 0.25em;
        white-space: nowrap;
        border-radius: 2rem;
        position: relative;
        box-shadow:
                0 0 calc(var(--active) * 6em) calc(var(--active) * 3em) hsl(var(--hue) 97% 61% / 0.5),
                0 0.05em 0 0 hsl(var(--hue) calc(var(--active) * 97%) calc((var(--active) * 50%) + 30%)) inset,
                0 -0.05em 0 0 hsl(var(--hue) calc(var(--active) * 97%) calc(var(--active) * 10%)) inset;
        transition: box-shadow var(--transition), scale var(--transition), background var(--transition);
        scale: calc(1 + (var(--active) * 0.1));
        transform-style: preserve-3d;
        perspective: 100vmin;
        overflow: hidden;
}

button:active {
  scale: 1;
}

.star {
        height: calc(var(--size) * 1px);
        aspect-ratio: 1;
        background: white;
        border-radius: 50%;
/*      filter: blur(4px);*/
        position: absolute;
        opacity: var(--alpha);
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(10deg) rotate(0deg) translateY(calc(var(--distance) * 1px)) ;
        -webkit-animation: orbit calc(var(--duration) * 1s) calc(var(--delay) * -1s) infinite linear;
                animation: orbit calc(var(--duration) * 1s) calc(var(--delay) * -1s) infinite linear;
}

@-webkit-keyframes orbit {
        to {
                transform: translate(-50%, -50%) rotate(10deg) rotate(360deg) translateY(calc(var(--distance) * 1px));
        }
}

@keyframes orbit {
        to {
                transform: translate(-50%, -50%) rotate(10deg) rotate(360deg) translateY(calc(var(--distance) * 1px));
        }
}

.galaxy {
        position: absolute;
        width: 100%;
        aspect-ratio: 1;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        overflow: hidden;
        opacity: var(--active);
        transition: opacity var(--transition);
        /*transform-style: preserve-3d;
        perspective: 100vmin;*/
/*      opacity: 0.25;*/
}

.galaxy__ring {
        height: 200%;
        width: 200%;
        position: absolute;
        top: 50%;
        left: 50%;
        border-radius: 50%;
        transform: translate(-28%, -40%) rotateX(-24deg) rotateY(-30deg) rotateX(90deg);
        transf.........完整代码请登录后点击上方下载按钮下载查看

网友评论0