- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我现在有点困惑..我正在使用 noUiSlider 插件
我实现了一个时间范围选择器,从早上 6 点开始到第二天早上 6 点。
基本上 23:59 之前的数据都很好,但是到了第二天我需要时间为 1:00、2:00 而不是 25:00、26:00 等...
我一直在尝试在我的 JSFiddle 示例中解决这个问题,但我想知道是否有更简单的方法来处理这些数据。
我的增量和值都以分钟为单位,以便更容易将其转换为小时。
https://jsfiddle.net/skrb5cg3/18/
var slider = document.getElementById("slider"),
leftValue = document.getElementById('leftvalue'),
rightValue = document.getElementById('rightvalue');
// 0 = initialhttps://jsfiddle.net/skrb5cg3/18/#run minutes from start of day
// 1440 = maximum minutes in a day
// step: 30 = amount of minutes to step by.
var initialStartMinute = 0,
initialEndMinute = 2160,
step = 15,
margin = 120;
slider = noUiSlider.create(slider, {
start: [initialStartMinute, initialEndMinute],
connect: true,
step: step,
margin: margin,
start: [360, 720],
padding: 360,
pips: {
mode: 'values',
values: [0, 360, 720, 1080, 1440, 1800, 2160],
density: 360
},
range: {
'min': initialStartMinute,
'max': initialEndMinute
}
});
var convertValuesToTime = function(values, handle) {
var hours = 0,
minutes = 0;
if (handle === 0) {
hours = convertToHour(values[0]);
minutes = convertToMinute(values[0], hours);
leftValue.innerHTML = formatHoursAndMinutes(hours, minutes);
valueleft.innerHTML = values[0];
return;
};
hours = convertToHour(values[1]);
minutes = convertToMinute(values[1], hours);
rightValue.innerHTML = formatHoursAndMinutes(hours, minutes);
valueright.innerHTML = values[1];
};
var convertToHour = function(value) {
return Math.floor(value / 60);
};
var convertToMinute = function(value, hour) {
return value - hour * 60;
};
var formatHoursAndMinutes = function(hours, minutes) {
if (hours.toString().length == 1) hours = '0' + hours;
if (minutes.toString().length == 1) minutes = '0' + minutes;
return hours + ':' + minutes;
};
slider.on('update', function(values, handle) {
convertValuesToTime(values, handle);
});
$('.noUi-value.noUi-value-horizontal.noUi-value-large').each(function() {
var val = $(this).html();
val = recountVal(parseInt(val));
$(this).html(val);
});
function recountVal(val) {
switch (val) {
case 0:
return '';
break;
case 360:
return '6am';
break;
case 720:
return '12am';
break;
case 1080:
return '6pm';
break;
case 1440:
return '12pm';
break;
case 1800:
return '6am';
break;
case 2160:
return '';
break;
}
}
我想做类似的事情,但它非常重复且冗长
if (values[1] == 1440) {
rightValue.innerHTML = "00:00";
}
else (values[1] == 1455) {
rightValue.innerHTML = "00:15";
}
else (values[1] == 1455) {
rightValue.innerHTML = "00:30";
}
else (values[1] == 1455) {
rightValue.innerHTML = "00:45";
}
else (values[1] == 1455) {
rightValue.innerHTML = "01:00";
}
else (values[1] == 1455) {
rightValue.innerHTML = "01:15";
}
else (values[1] == 1455) {
rightValue.innerHTML = "01:30";
}
最佳答案
你在找这样的东西吗?
https://jsfiddle.net/persianturtle/skrb5cg3/19/
var convertValuesToTime = function(values, handle) {
values = values
.map(value => Number(value) % 1440)
.map(value => convertMinutesToHoursAndMinutes(value))
console.log(values)
};
var convertMinutesToHoursAndMinutes = function(minutes) {
let hour = Math.floor(minutes / 60)
let minute = minutes - hour * 60
return hour + ':' + minute
}
关于javascript - 中午 12 点范围 slider 后的 noUISlider 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822043/
文档说要使用 slider.noUiSlider.get(); 获取当前值。但是如果 slider 有两个 handle (因此有两个值),我如何获得这两个单独的值? 最佳答案 对于有两个 handl
文档说要使用 slider.noUiSlider.get(); 获取当前值。但是如果 slider 有两个 handle (因此有两个值),我如何获得这两个单独的值? 最佳答案 对于有两个 handl
我正在尝试使用 noUISlider 加载多个 slider ,但它不起作用。使用第一个 slider 时,第二个和第三个 slider 的值会发生变化。我该如何重构一个 slider 的代码,以便我
有没有办法显示非数字的最后点数值。例如,显示 0、100、200、300、更多的点数比例 感谢这个伟大的剧本! 最佳答案 以下解决方案有点麻烦,但它可以满足您的需求。 您可以使用 format选项并将
如何从链接的输出中删除小数位 我正在使用此代码 $("#slider_01").noUiSlider({ start: [2000, 24000], connect: true,
我正在使用 noUiSlider 并遵循如何创建自定义格式的教程: noUiSlider.create(sliderFormat, { start: [ 20 ], step: 10, range:
我正在尝试让 noUiSlider 工作,但没有完成第一步。下面是我正在尝试的最简单的文件,它只是给我一个空白屏幕: noUiSlider - Getting Star
所以我花了最后几个小时试图让 NoUISlider 在基本页面上工作,但我似乎无法让它工作。我到处寻找示例代码,但似乎找不到有效的代码。这是我所拥有的: -->
你能帮我解决 noUIslider 问题吗? 我有简单的 slider : noUiSlider.create(slider, { start: 250, ra
我正在使用 nouislider ( https://refreshless.com/nouislider/ ),我想设置变量的范围值。但如果我使用变量值, slider 将不会创建。 jQuery.
这与我关于 nousliders 的第一个问题非常相关:How to update div in Meteor without helper? (这个标题选得不好,因为它不是为了避免帮助者) Jank
一切都在 100 到 1000 的范围内运行,但在 1000 之后该步骤停止运行,告诉我可以做什么? 最佳答案 step 选项仅适用于范围的第一部分。对于后续部分,您可以为每个单独的范围值传递一个数
嘿,我已经检查了有关重置 noUiSlider 的主题,但我找不到处理我的问题的方法。有什么建议吗? reset Update noUiSlider.create($('#product
您可以拿一个look at this Demo吗?让我知道为什么这个垂直 slider 甚至没有出现?原始演示位于This Page但这对我不起作用! $("#sample-showcase").no
是否可以在不修改值的情况下格式化工具提示?显然,这样做会改变迄今为止的值。 tooltips: [true], format: { from: Number, to: function
我试图在网站上添加几个 slider ,但我被卡住了。我直接从他们的网站下载了 nouislider 脚本,在此之前,我将 jQuery 1.8.0 添加到我的网站。这是我制作的: index.htm
我正在尝试设置 noUiSlider。 我的html是 我的javascript var slider = document.getElementById('slider'); noUiSl
我正在使用 noUiSlider 并尝试将 slider 值用作表单输入值(以工作表单发送)。我已经尝试了各种可以在堆栈溢出中找到的示例,但似乎没有任何效果。这是我的 slider 脚本: var
我有一个 slider ,点数从 21 到 30,数字之间有 10 个标记(像尺子),步长为 0.5。有没有办法限制值,所以用户不能低于 21.5 但标记从 21 开始?我不会听 onchange,因
下面是我对 noUiSlider 的使用,我喜欢它,因为它缺少 jQuery。但是,每当我使用从负数开始的范围时, slider 的设置功能似乎就会被破坏。我假设这是 noUiSlider 的一个实际
我是一名优秀的程序员,十分优秀!