parent
c0548118b8
commit
185db450ec
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 304 KiB |
@ -0,0 +1,82 @@
|
||||
.thumb-icon {
|
||||
width: var(--size);
|
||||
position: relative;
|
||||
|
||||
--gray-color: rgba(0, 0, 0, 0.4);
|
||||
--no-color: rgba(244, 244, 244, 0);
|
||||
--brand-color: #c43737;
|
||||
--size: 24px;
|
||||
--path-dasharray: 120;
|
||||
}
|
||||
|
||||
.thumb-svg {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.thumb-path {
|
||||
fill: var(--no-color);
|
||||
stroke: var(--gray-color);
|
||||
stroke-dasharray: var(--path-dasharray);
|
||||
stroke-width: 1.5px;
|
||||
stroke-dashoffset: 0;
|
||||
stroke-linecap: round;
|
||||
}
|
||||
|
||||
.checkbox[type='checkbox'] {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 99;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.checkbox[type='checkbox']:hover + svg .thumb-path {
|
||||
stroke: #000;
|
||||
transition: stroke 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
/* 抖动 */
|
||||
.checkbox[type='checkbox']:checked + svg {
|
||||
animation: touch 0.7s forwards ease-in;
|
||||
}
|
||||
|
||||
/* 填充 */
|
||||
.checkbox[type='checkbox']:checked + svg .thumb-path {
|
||||
animation: run 0.75s 0.1s forwards linear;
|
||||
}
|
||||
|
||||
@keyframes run {
|
||||
0% {
|
||||
stroke: var(--brand-color);
|
||||
stroke-dashoffset: var(--path-dasharray);
|
||||
}
|
||||
|
||||
80% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
stroke: var(--brand-color);
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 抖动 */
|
||||
@keyframes touch {
|
||||
0%,
|
||||
50%,
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
25% {
|
||||
transform: scale(0.75);
|
||||
}
|
||||
75% {
|
||||
transform: scale(1.25);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue