js+svg实现辣椒滑竿滑块取值器效果代码
代码语言:html
所属分类:其他
代码描述:js+svg实现辣椒滑竿滑块取值器效果代码,点击辣椒进行拖拽移动。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #fff;
font-size: 3em;
}
.slider-wrapper {
--slider-height: .3125em;
--slider-thumb-size: 1.75em;
--slider-progress: 50;
border-radius: 50px;
width: 7em;
max-width: 100%;
transition: width 0.2s;
}
.slider-wrapper.unlocked {
width: 8em;
}
.slider-track {
display: flex;
justify-content: center;
align-items: center;
position: relative;
border-radius: inherit;
width: 100%;
height: var(--slider-height);
background-image: linear-gradient(to right, transparent 0% calc(var(--slider-progress) * 1%), #aaa calc(var(--slider-progress) * 1%) 100%), linear-gradient(to right, #62ad1d, #fbbd1e, #fb6e1e, #e71a1a, #220000);
background-size: auto, 125% 100%;
box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.6), inset 0 -2px 4px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
transition: background-size 0.2s;
}
.slider-wrapper.unlocked > .slider-track {
background-size: auto, 100% 100%;
}
.slider-input {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
position: absolute;
z-index: 1;
left: 50%;
transform: translate(-50%);
border-radius: inherit;
width: calc(100% + var(--slider-thumb-size));
height: 100%;
opacity: 0;
cursor: pointer;
}
.slider-input::-webkit-slider-runnable-track {
height: 100%;
}
.slider-input::-webkit-slider-thumb {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
margin-top: calc((var(--slider-height) / 2) - (var(--slider-thumb-size) / 2));
border-width: 0;
border-radius: 50%;
width: var(--slider-thumb-size);
height: var(--slider-thumb-size);
}
.slider-input::-moz-range-thumb {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
margin-top: calc((var(--slider-height) / 2) - (var(--slider-thumb-size) / 2));
border-width: 0;
border-radius: 50%;
width: var(--slider-thumb-size);
height: var(--slider-thumb-size);
}
.slider-thumb {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
left: calc(var(--slider-progress) / 100 * (100% - var(--slider-height)) + var(--slider-height) / 2);
left: calc(var(--slider-progress) * 1%);
transform: translateX(-50%);
width: var(--slider-thumb-size);
height: var(--slider-thumb-size);
transition: transform 0.2s;
}
.slider-input:active + .slider-thumb {
transform: translateX(-50%) scale(0.86);
}
.slider-thumb::after {
content: "";
position: absolute;
z-index: 1;
width: 150%;
height: 150%;
background-image: url("https://assets.codepen.io/4175254/explosion-2.png");
background-size: 800%;
opacity: 0;
}
.slider-thumb.play-explosion::after {
animation: explosion 0.5s steps(8) forwards;
opacity: 1;
}
@keyframes explosion {
to {
background-position-x: -800%;
}
}
.slider-thumb-image {
--slider-thumb-image-color: rgb(251 150 30);
position: relative;
width: 100%;
height: 100%;
fill: var(--slider-thumb-image-color);
transition: transform 0.2s;
}
.slider-thumb-image.shake {
animation: shake 0.2s infinite;
}
@keyframes shake {
0% {
transform: rotate(0deg);
}
25% {
transform: rotate(5deg);
}
50% {
transform: rotate(0eg);
}
75% {
transform: rotate(-5deg);
}
100% {
transform: rotate(0deg);
}
}
</style>
</head>
<body>
<!-- Keep dragging over the maximum value unlock a secret level -->
<div class="slider-wrapper&qu.........完整代码请登录后点击上方下载按钮下载查看
网友评论0