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