【发布时间】:2015-07-14 13:26:08
【问题描述】:
我正在做一个基于 noUi Slider 的滑块。试图实现这样说“优雅”的解决方案。由于我的 ui 句柄很大,因此我将 ui 基数稍大一些,并在基数中添加了额外的值。但是这些值是不允许的,并且句柄将跳回到允许的值。我决定将加号和减号按钮放在限制值所在的位置。
但问题是我无法实现当您将手柄移到控制符号(加号/减号)上时它们会隐藏在手柄后面的效果。就我而言,他们仍然位居榜首。我无法解决这个问题。
一些帮助/建议会很棒。
这是我的代码(样式在 JSFiddle 上):
$(document).ready(function(){
var sliders = document.getElementById('red'),
input = document.getElementById('handle'),
sliderPlus = document.getElementById('slider-amount-plus'),
sliderMinus = document.getElementById('slider-amount-minus'),
termCur = 500;
noUiSlider.create(sliders, {
start: termCur,
step: 50,
connect: "lower",
range: {
'min': 0,
'max': 1100
},
pips: {
mode: 'values',
values: [100, 500, 1000],
density: 4.5
}
});
$('<div class="value">' + termCur + ' zł' + '</div>').appendTo($('.noUi-handle', sliders));
sliders.noUiSlider.on('change', function ( values, handle ) {
if ( values[handle] < 100 ) {
sliders.noUiSlider.set(100);
} else if ( values[handle] > 1000 ) {
sliders.noUiSlider.set(1000);
}
});
sliders.noUiSlider.on('update', function( values ) {
termCur = values;
if( termCur >= 100 && termCur <= 1000 ) {
$('.value', sliders).text(parseInt(termCur) + ' zł');}
});
sliderPlus.addEventListener('click', function(){
if(termCur < 1000) {
var setValue = parseInt(termCur) + 50;
sliders.noUiSlider.set(setValue);
}
});
sliderMinus.addEventListener('click', function(){
if(termCur > 100) {
var setValue = parseInt(termCur) - 50;
sliders.noUiSlider.set(setValue);
}
});
<div class="sliders" id="red">
<a class="controls-symbols slider-minus" id="slider-amount-minus"><i class="fa fa-minus"></i></a>
<a class="controls-symbols slider-plus" id="slider-amount-plus"><i class="fa fa-plus"></i></a>
</div>
【问题讨论】:
-
您是否正在尝试实现类似Fiddle 的目标?
-
不完全。当我悬停时,您正在隐藏减号/加号控制元素。我想要实现的是控制元素将始终存在,就像它们现在一样。但是当我将手柄移动到该区域时(控制元素的区域,因为它是允许的,在它反弹之前),控制元素将隐藏在手柄后面,而不是留在前面。
-
哦,我明白了。
-
你在寻找类似Fiddle的东西吗?
-
如果您打算使用 DOM 操作,那么您可能希望使用 jQuerys
on方法附加您的点击事件,如下所示:$(document).on('click', sliderMinus, function(e){ alert('click'); });这将确保始终附加事件。在对sliderMinus的引用被克隆然后删除之前,因此事件没有正常进行
标签: jquery html css css-position z-index