Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
Explore
css
*, *: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)) ; animation: orbit calc(var(--duration) * 1s) calc(var(--delay) * -1s) infinite linear; } @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); transform-style: preserve-3d; /* background: red;*/ } .galaxy__container { position: absolute; inset: 0; opacity: var(--active); transition: opacity var(--transition); mask: radial-gradient(white, transparent); } .star--static { animation: none; top: 50%; left: 50%; transform: translate(0, 0); max-height: 4px; filter: brightness(4); opacity: 0.9; animation: move-x calc(var(--duration) * 0.1s) calc(var(--delay) * -0.1s) infinite linear, move-y calc(var(--duration) * 0.2s) calc(var(--delay) * -0.2s) infinite linear; } button:hover .star--static { animation-play-state: paused; } @keyframes move-x { 0% { translate: -100px 0; } 100% { translate: 100px 0; } } @keyframes move-y { 0% { transform: translate(0, -50px); } 100% { transform: translate(0, 50px); } } .spark { position: absolute; inset: 0; border-radius: 2rem; rotate: 0deg; overflow: hidden; mask: linear-gradient(white, transparent 50%); animation: flip calc(var(--spark) * 2) infinite steps(2, end); } @keyframes flip { to { rotate: 360deg; } } .spark:before { content: ""; position: absolute; width: 200%; aspect-ratio: 1; top: 0%; left: 50%; z-index: -1; translate: -50% -15%; rotate: 0; transform: rotate(-90deg); opacity: calc((var(--active)) + 0.4); background: conic-gradient( from 0deg, transparent 0 340deg, white 360deg ); transition: opacity var(--transition); animation: rotate var(--spark) linear infinite both; } .spark:after { content: ""; position: absolute; inset: var(--cut); border-radius: 2rem; } .backdrop { position: absolute; inset: var(--cut); background: var(--bg); border-radius: 2rem; transition: background var(--transition); } @keyframes rotate { to { transform: rotate(90deg); } } @supports(selector(:has(:is(+ *)))) { body:has(button:is(:hover, :focus-visible)) { --active: 1; --play-state: running; } .bodydrop { display: none; } } button:is(:hover, :focus-visible) ~ :is(.bodydrop, .particle-pen) { --active: 1; --play-state: running; } .bodydrop { background: hsl( 260 calc(var(--active) * 97%) 6% ); position: fixed; inset: 0; z-index: -1 } button:is(:hover, :focus-visible) { --active: 1; --play-state: running; } .galaxy-button { position: relative; } @keyframes float-out { to { rotate: 360deg; } } .text { translate: 2% -6%; letter-spacing: 0.01ch; /*background: linear-gradient(90deg, hsl(0 0% calc((var(--active) * 100%) + 65%)), hsl(0 0% calc((var(--active) * 100%) + 26%))); -webkit-background-clip: text;*/ color: hsl(0 0% calc(60% + (var(--active) * 26%))); } button svg { inline-size: 1.25em; translate: -25% -5%; }
JavaScript
const RANDOM = (min, max) => Math.floor(Math.random() * (max - min + 1) + min); const PARTICLES = document.querySelectorAll('.star'); PARTICLES.forEach(P => { P.setAttribute('style', ` --angle: ${RANDOM(0, 360)}; --duration: ${RANDOM(6, 20)}; --delay: ${RANDOM(1, 10)}; --alpha: ${RANDOM(40, 90) / 100}; --size: ${RANDOM(2, 6)}; --distance: ${RANDOM(40, 200)}; `); });
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>CSS按钮特效-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号