我有两个类型为“ range”的输入。我想将两者合并。
我想制作一个双滑块,但是,如果我将两个元素放在另一个之上,则只有最上面的一个接受鼠标单击。我不希望使用任何外部库来执行此操作。我是通过 css 样式完成此操作的,但主要问题是它无法在Mozilla浏览器和IE中工作。它只适用于chrome浏览器,我认为这是由于指针事件引起的:尚未在Mozilla浏览器中运行。有想法吗?
**css :**
.price-slider {
position: relative;
width: 400px;
margin: 0 auto 20px;
height: 35px;
text-align: center;
}
.price-slider input {
pointer-events: none;
position: absolute;
left: 0;
top: 15px;
width: 100%;
outline: none;
height: 18px;
margin: 0;
padding: 0;
border-radius: 8px;
}
.price-slider input::-webkit-slider-thumb {
pointer-events: all;
position: relative;
z-index: 1;
outline: 0;
height: 24px;
widows: 24px;
border-radius: 12px;
background-color: white;
border: 2px solid black;
-webkit-appearance: none;
}
**HTML:**
<div class="price-slider">
<input value="0" min="0" value="0" max="100" step="1" type="range" />
<input value="100" min="0" value="100" max="100" step="1" type="range" />
</div>
答案 0 :(得分:1)
这应该可以解决您的问题,但有关信息,pointer-events
属性也可以在firefox中使用,而无需任何前缀。
.price-slider {
position: relative;
width: 400px;
margin: 0 auto 20px;
height: 35px;
text-align: center;
}
.price-slider input {
pointer-events: none;
position: absolute;
left: 0;
top: 15px;
width: 100%;
outline: none;
height: 18px;
margin: 0;
padding: 0;
border-radius: 8px;
}
.price-slider input::-webkit-slider-thumb {
pointer-events: all;
position: relative;
z-index: 1;
outline: 0;
height: 24px;
widows: 24px;
border-radius: 12px;
background-color: white;
border: 2px solid black;
-webkit-appearance: none;
}
.price-slider input::-moz-range-thumb {
pointer-events: all;
position: relative;
z-index: 1;
outline: 0;
height: 24px;
widows: 24px;
border-radius: 12px;
background-color: white;
border: 2px solid black;
-moz-appearance: none;
}
input::-moz-range-track {
background: #ccc;
}
<div class="price-slider">
<input value="0" min="0" value="0" max="100" step="1" type="range">
<input value="100" min="0" value="100" max="100" step="1" type="range">
</div>