index.html
结构
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<link rel="stylesheet" href="style.scss" />
</head>
<body>
<div class="buttonWrapper">
<button>第一个按钮</button>
<button>第二个按钮</button>
</div>
</body>
</html>
index.scss
源码
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
@mixin buttonWithShadow($color) {
background: $color;
box-shadow: 0px 5px 0px 0px darken($color, 15%);
}
.buttonWrapper {
button {
padding: 10px 20px;
font-size: 20px;
border-radius: 4px;
border: none;
color: white;
margin: 0 40px;
&:first-child {
$blue: #55acee;
@include buttonWithShadow($blue);
&:hover {
animation: x .5s;
}
}
&:nth-child(2) {
$green: #2ecc5e;
@include buttonWithShadow($green);
&:hover {
animation: y .5s;
}
}
}
}
$n1: 10%;
$n2: 20%;
$step: 25%;
@keyframes x {
@for $i from 0 to 4 {
#{$i * $step} {
@if $i % 2 == 0 {
transform: translateX(-$n1);
}@else{
transform: translateX($n1);
}
}
}
100% {
transform: translateX(0);
}
}
@keyframes y {
@for $i from 0 to 4 {
#{$i * $step} {
@if $i % 2 == 0 {
transform: translateY(-$n2);
}@else{
transform: translateY($n2);
}
}
}
100% {
transform: translateY(0);
}
}
使用parcel工具打包运行后的效果
shake.gif
网友评论