2017-10-06 61 views
0

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

下面是一个例子,正是我想要的。

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

这就是你想要的。如果你想要更多的修饰,去看看这里的文档https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/

/* 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; 
 
}
<div> 
 
    <input type="range" min="0" max="100" value="40"/> 
 
</div>

+0

感谢@Awsme桑迪但实际上,当我加大改变输入型色系的颜色或类似前一张幻灯片蓝色或指针后拇指颜色或输入类型范围是灰色的。我真的想要plz帮助我,如果你能做到。 –