gpt4 book ai didi

javascript - 相对于输入 [type=range] 的绝对定位 - 不工作

转载 作者:行者123 更新时间:2023-11-28 03:57:59 25 4
gpt4 key购买 nike

我创建了一个范围 slider ,在 Stackoverflow 的帮助下,工具提示几乎正确地跟随 slider 。我遇到的问题是工具提示并不总是在 slider 拇指上方居中。特别是当您将 slider 从右侧向左移动时。

https://codepen.io/stinkytofu3311/pen/gWYBWb

我已经研究过这到底是怎么回事,我认为这与偏移位置有关。有人有这方面的经验吗?

// Tool Tip
$(document).mousemove(function(e){
if(moveit){
var parentOffset = $('#range-slider').parent().offset();
var relX = e.pageX - parentOffset.left;
var relY = e.pageY - parentOffset.top;
var step = $('#range-slider').width()/5;
valS = $('#range-slider').val();
if(val != valS){
val = $('#range-slider').val();
console.log(val);
console.log(step * val);
var xxx = relX + step;
console.log(relY);
console.log(relX);
}
//console.log(relX);
$('#sliderPrice').css('top', parentOffset.top-350).css('left',xxx-120);
//console.log($("#range-slider").val());
}
});

最佳答案

我已经更新了您的工具提示移动功能。您不再需要 step 变量,我创建了一个新变量 offsetLeft 来代替 xxx

有一个新的 if 语句将检查 valS 是否小于或等于 val 如果是,我们加回偏移量工具提示的宽度。

此外,如果两个值不匹配并更新 val 变量,我们只会移动工具提示。

希望这对您有所帮助!

编辑

您还会注意到新的 .css() 函数调用正在使用一个对象,而不是再次调用 .css()

// Tool Tip
$(document).mousemove(function(e){
if(moveit){
var parentOffset = $('#range-slider').parent().offset();
var relX = e.pageX - parentOffset.left;
var relY = e.pageY - parentOffset.top;
var step = $('#range-slider').width()/5;
var leftOffset = (relX - 120);
valS = $('#range-slider').val();
if(val != valS){
if ( valS >= val ) {
leftOffset += 120;
}
val = $('#range-slider').val();
$('#sliderPrice').css({
'top': parentOffset.top-350,
'left': leftOffset
});
}
//console.log(relX);
//$('#sliderPrice').css('top', parentOffset.top-350).css('left',leftOffset);
//console.log($("#range-slider").val());
}
});

关于javascript - 相对于输入 [type=range] 的绝对定位 - 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357193/

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