js+svg实现辣椒滑竿滑块取值器效果代码

代码语言:html

所属分类:其他

代码描述:js+svg实现辣椒滑竿滑块取值器效果代码,点击辣椒进行拖拽移动。

代码标签: 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