gpt4 book ai didi

jquery - 如何正确定位css元素?

转载 作者:太空狗 更新时间:2023-10-29 15:07:56 24 4
gpt4 key购买 nike

我正在做一个基于 noUi Slider 的 slider 。试图实现可以说是“优雅”的解决方案。由于我的 ui 句柄很大,我使 ui base 稍大一些,并在 base 中添加了额外的值。但是这些值是不允许的,句柄将跳回到允许的值。我决定将加号和减号按钮放在限制值所在的位置。

但问题是我无法实现当您将 handle 移到控制符号(加/减)上时它们会隐藏在 handle 后面的效果。就我而言,他们仍然处于领先地位。我很难解决这个问题。

一些帮助/建议会很棒。

这是我的代码(样式在 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>

https://jsfiddle.net/o7Ly845j/

最佳答案

所以,使用最后一个@zgood fiddle,我猜问题不再是 z 顺序,这是因为 slider 和加号/减号元素都在获取事件,并且到加号时/minus 事件掌握了它, slider 已经在 1100 或 0。所以我改变了周围的事件,所以 plus/minus 首先得到了事件并阻止它进入酒吧。我真的只需要停止 mousedown,大部分问题就会自行解决。之后,我可以取出所有 > 100 和 < 1000 的支票,因为条形图会自动运行。

我还注意到,当您达到 50/1050 时, slider 按钮会遮住加号/减号。所以我在 fiddle 中将加号/减号更改为 z-index:13 而不是 3 。我不确定哪个更好,所以请尝试 3 和 13 并做出您自己的决定。

https://jsfiddle.net/guyschalnat/radpjf47/2/

$(document).ready(function(){

var sliders = document.getElementById('red'),
input = document.getElementById('handle'),
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));

var c = $('#red > span').clone(true);
$('#red > span').remove();
$('.noUi-base').prepend(c);

sliders.noUiSlider.on('update', function( values ) {
var val = parseInt(values);
termCur = val;
$('.value', sliders).text(termCur + ' zł');
});
$('#slider-amount-plus').click(function(e){
if(termCur < 1100) {
termCur = termCur + 50;
sliders.noUiSlider.set(termCur);
$('.value', sliders).text(termCur + ' zł');
}
e.stopPropagation();
}).mousedown(function(e){
e.stopPropagation();
});
$('#slider-amount-minus').click(function(e){
if(termCur > 0) {
termCur = termCur - 50;
sliders.noUiSlider.set(termCur);
$('.value', sliders).text(termCur + ' zł');
}
}).mousedown(function(e){
e.stopPropagation();
});

});

关于jquery - 如何正确定位css元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com