纯css+svg实现按钮悬浮切换效果

代码语言:html

所属分类:悬停

代码描述:纯css+svg实现按钮悬浮切换效果

代码标签: 按钮 悬浮 切换 效果

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


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
.wrapper {
  --background: #4F29F0;
  --background-dark: #371CA8;
  --icon-color: #414856;
  --shape-color-01: #B8CBEE;
  --shape-color-02: #7691E8;
  --shape-color-03: #FDD053;
  --width: 80px;
  --height: 80px;
  --border-radius: var(--height);
  width: var(--width);
  height: var(--height);
  position: relative;
  border-radius: var(--border-radius);
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  box-shadow: 0 10px 30px rgba(65, 72, 86, 0.05);
  overflow: hidden;
  -webkit-transition: -webkit-transform .3s;
  transition: -webkit-transform .3s;
  transition: transform .3s;
  transition: transform .3s, -webkit-transform .3s;
  -webkit-transform: scale(var(--scale, 1));
          transform: scale(var(--scale, 1));
}
.wrapper:active {
  --scale: .95;
}
.wrapper > .btn {
  width: var(--width);
  height: var(--height);
  position: relative;
  background: var(--background);
  border-radius: var(--border-radius);
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  -webkit-transition: background 0s ease .5s;
  transition: background 0s ease .5s;
}
.wrapper > .btn:before, .wrapper > .btn:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  -webkit-clip-path: circle(150% at 200% 200%);
          clip-path: circle(150% at 200% 200%);
}
.wrapper > .btn:before {
  background: var(--background-dark);
}
.wrapper > .btn:after {
  background: var(--background);
}
.wrapper > svg {
  width: 32px;
  height: 42px;
  position: absolute;
  z-index: 2;
  -webkit-transition: -webkit-transform .3s linear;
  transition: -webkit-transform .3s linear;
  transition: transform .3s linear;
  transition: transform .3s linear, -webkit-transform .3s linear;
}
.wrapper > svg .shape {
  fill: none;
  stroke: #fff;
  stroke-width: 6px;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.wrapper input {
  height: 100%;
  width: 100%;
  border-radius: var(--border-radius);
  cursor: pointer;
  position: absolute;
  z-index: 5;
  margin: 0;
  opacity: 0;
}
.wrapper input:checked ~ .btn {
  background: var(--background-dark);
}
.wrapper input:checked ~ .btn:before {
  -webkit-clip-path: circle(150% at 100% 100%);
          clip-path: circle(150% at 100% 100%);
  -webkit-transition: -webkit-clip-path .5s ease;
  transition: -webkit-clip-path .5s ease;
  transition: clip-path .5s ease;
  transition: clip-path .5s ease, -webkit-clip-path .5s ease;
  z-index: 1;
}
.wrapper input:checked ~ .btn:after {
  -webkit-clip-path: circle(150% at 200% 200.........完整代码请登录后点击上方下载按钮下载查看

网友评论0