如何在悬停的输入类型范围::拇指上放置动画?

时间:2017-10-06 06:06:28

标签: javascript jquery css css3 saas

在这里,我想在输入类型范围拇指上放置一些动画。 在这里我做了所有的事情,但我没有找到动画效果悬停在这里的解决方案是示例和我的代码.. 请给出解决方案。

以下是我想要的例子。

enter image description here

@import 'bourbon';

$slider-width-number: 240;
$slider-width: #{$slider-width-number}px;
$slider-height: 2px;
$background-slider: #c7c7c7;
$background-filled-slider: #00BCD4;
$thumb-width: 18px;
$thumb-height: 18px;
$thumb-radius: 50%;
$thumb-background: #00BCD4;
$thumb-box-shadow: 2px 2px 1px 10px #00BCD4;
$thumb-border: 1px solid #777;
$shadow-size: -8px;
$fit-thumb-in-slider: -8px;


@function makelongshadow($color, $size) {
  $val: 5px 0 0 $size $color;
  
  @for $i from 6 through $slider-width-number {
    $val: #{$val}, #{$i}px 0 0 $size #{$color};
  }
  
  @return $val;
}

div {
  height: 100px;
  display: flex;
  justify-content: center;
}

input {
  align-items: center;
  appearance: none;

  background: none;
  cursor: pointer;
  display: flex;
  height: 100%;
  min-height: 50px;
  overflow: hidden;
  width: $slider-width;

  &:focus {
    box-shadow: none;
    outline: none;
  }
  
  &::-webkit-slider-runnable-track {
    background: $background-filled-slider;
    content: '';
    height: $slider-height;
    pointer-events: none;
  }
  
  &::-webkit-slider-thumb {
    @include size($thumb-width $thumb-height);
    
    appearance: none;
    background: $thumb-background;
    border-radius: $thumb-radius;
    box-shadow: makelongshadow($background-slider, $shadow-size);
    margin-top: $fit-thumb-in-slider;
    border: $thumb-border;
 
  }
  
  
  &::-moz-range-track {
    width: $slider-width;
    height: $slider-height;
  }

  &::-moz-range-thumb {
    @include size($thumb-width $thumb-height);

    background: $thumb-background;
    border-radius: $thumb-radius;
    border: $thumb-border;
    position: relative;
    
  }
  &:active::-webkit-slider-thumb {
  
    transform: scale(2);
  }
  &::-moz-range-progress {
    height: $slider-height;
    background: $background-filled-slider;
    border: 0;
    margin-top: 0;
  }

  &::-ms-track {
    background: transparent;
    border: 0;
    border-color: transparent;
    border-radius: 0;
    border-width: 0;
    color: transparent;
    height: $slider-height;
    margin-top: 10px;
    width: $slider-width;
  }
  
  &::-ms-thumb {
    @include size($thumb-width $thumb-height);

    background: $thumb-background;
    border-radius: $thumb-radius;
    border: $thumb-border;
  }

  &::-ms-fill-lower {
    background: $background-filled-slider;
    border-radius: 0;
  }

  &::-ms-fill-upper {
    background: $background-slider;
    border-radius: 0;
  }

  &::-ms-tooltip {
    display: none;
  }
}
<div>
  <input type="range"  min="0" max="100" value="40"/>
</div>
以下是 Codepen 链接:

https://codepen.io/anon/pen/qPpRJp

您还可以修改 Codepen

1 个答案:

答案 0 :(得分:3)

这就是你想要的。如果您想进行更多修改,请转到此处查看文档https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/

&#13;
&#13;
/* Special styling for WebKit/Blink */
input[type=range] {
  -webkit-appearance: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 10;
  height: 15px;
  width: 15px;
  border-radius: 50%;
  background: #3399cc;
  cursor: pointer;
  margin-top: -5px; /* You need to specify a margin in Chrome, but in Firefox and IE it is automatic */
  transition : all .3s;
  border:0;
  
}
input[type=range]:hover::-webkit-slider-thumb{
box-shadow: 0px 0px 0px 4px rgba(51, 153, 204, 0.49);
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 4px;
  cursor: pointer;
  background: #3071a9;
}
&#13;
<div>
  <input type="range"  min="0" max="100" value="40"/>
</div>
&#13;
&#13;
&#13;