svg+css实现按钮悬浮点击伸缩弹出菜单效果代码
代码语言:html
所属分类:菜单导航
代码描述:svg+css实现按钮悬浮点击伸缩弹出菜单效果代码
代码标签: svg css 按钮 悬浮 点击 伸缩 弹出 菜单
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
border: 0;
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--hue: 223;
--bg: hsl(var(--hue),10%,90%);
--fg: hsl(var(--hue),10%,10%);
--primary: hsl(var(--hue),90%,55%);
--primary-down: hsl(var(--hue),90%,45%);
--primary-down-t: hsla(var(--hue),90%,45%,0);
font-size: calc(16px + (32 - 16) * (100vw - 320px) / (1280 - 320));
}
body,
button {
font: 1em/1.5 sans-serif;
}
body {
background-color: var(--bg);
color: var(--fg);
height: 100vh;
display: grid;
place-items: center;
transition: background-color 0.3s;
}
/* Main styles */
.share {
position: relative;
width: 3em;
height: 3em;
}
.share__btn,
.share__links:before {
background-color: var(--primary);
width: 100%;
height: 100%;
}
.share__btn,
.share__link {
border-radius: 50%;
color: hsl(0,0%,100%);
display: grid;
place-items: center;
transition: background-color 0.15s linear;
}
.share__btn {
position: relative;
z-index: 1;
}
.share__btn:focus,
.share__link:focus {
outline: transparent;
}
.share__btn:focus,
.share__btn:hover,
.share__link:focus,
.share__link:hover {
background-color: var(--primary-down);
}
.share__btn-icon,
.share__link-icon {
display: block;
pointer-events: none;
}
.share__btn-icon {
width: 1.5em;
height: 1.5em;
}
.share__btn-icon-1a,
.share__btn-icon-1b,
.share__btn-icon-1c,
.share__btn-icon-2a,
.share__btn-icon-2b,
.share__btn-icon-2c {
transition: all 0.3s ease-in-out;
}
.share__btn-icon-1a,
.share__btn-icon-1b,
.share__btn-icon-1c {
transform-origin: 12px 12px;
}
.share__btn-icon-1a,
.share__btn-icon-1b {
stroke-dasharray: 5.7 5.7;
stroke-dashoffset: 0;
}
.share__btn-icon-1c {
stroke-dasharray: 12 12;
stroke-dashoffset: -3.73;
}
.share__btn-icon-2a,
.share__btn-icon-2b,
.share__btn-icon-2c {
transform-origin: 20px 21px;
}
.share__btn-icon-2a,
.share__btn-icon-2b {
stroke-dasharray: 6 6;
stroke-dashoffset: 0;
}
.share__btn-icon-2c {
stroke-dasharray: 16 16;
stroke-dashoffset: -8.46;
}
.share__link-icon {
width: 1.25em;
height: 1.25em;
transform: scale(0);
transition: transform 0.3s cubic-bezier(0.42,-0.58,0.58,1);
}
.share__links,
.share__links:before {
border-radius: 1.5em;
position: absolute;
top: 0;
left: 0;
}
.share__links {
display: flex;
flex-direction: column;
align-items: center;
list-style: none;
overflow: hidden;
padding-top: 3em;
pointer-events: none;
width: 100%;
visibility: hidden;
transition: visibility 0.3s 0.6s steps(1,start);
z-index: 0;
}
.share__links:before {
content: "";
display: block;
transform: translate(0,-100%);
transition:
background-color 0.3s,
transform 0.3s 0.3s ease-in-out;
z-index: -1;
}
.share__link {
background-color: var(--primary-down-t);
width: 2.25em;
height: 2.25em;
}
.share__link-item {
margin: 0.375em 0;
}
.share__link-item:nth-child(1) .share__link-icon {
transition-delay: 0.14s;
}
.share__link-item:nth-child(2) .share__link-icon {
transition-delay: 0.04s;
}
/* When share is open */
.share__btn--open .share__btn-icon-1a,
.share__btn--open .share__btn-icon-1b {
transform: rotate(45deg) translateY(-3px);
}
.share__btn--open .share__btn-icon-1a {
stroke-dashoffset: -5.7;
}
.share__btn--open .share__btn-icon-1b {
stroke-dashoffset: 5.7;
}
.share__btn--open .share__btn-icon-1c {
stroke-dasharray: 25.46 12;
stroke-dashoffset: -0.73;
transform: rotate(45deg);
}
.share__btn--open .share__btn-icon-2a,
.share__btn--open .share__btn-icon-2b {
stroke-dashoffset: -6;
}
.share__btn--open .share__btn-icon-2a {
transform: translateY(-1px) rotate(45deg) translateX(-8px);
}
.share__btn--open .share__btn-icon-2b {
transform: tra.........完整代码请登录后点击上方下载按钮下载查看
网友评论0