あるプラグインまたは例のjqueryスライダーと非equablyで割り切れます。
-
22-08-2019 - |
質問
いつ優れたプラグインを発生させるためのスライダー、webフォームは、劣化しくブラウザをサポートしないjavascriptについてスタイルをoffになど。
このJquery.UIバージョン: http://ui.jquery.com/demos/slider/#steps
のselect要素にスライダー: http://www.filamentgroup.com/lab/update_jquery_ui_16_slider_from_a_select_element/
しかしい成する必要があるスライダーだけの悩みではありません分け、スライダーに等しい。
例えば、ということかして以下の数値の範囲:
800,1000,1100,1200,1300,1400,1500
私のスライダーも大きなギャップ800 1000その小さな隙間1100-1500
でスライダのう少しこのように:
800----1000--1100--1200--1300--1400--1500
好ましいですが劣化を低減し、問題はなんだろうけど、日本人のプラグインを支援すること又は勧告のための最良の方法の実現、カスタマイズのfilamentgroupプラグインロール自。
更新: されたハッキングとともに、フィラメントグループのスライダを実装するに取り扱うよJQuery UIのスライダー。ように見えるmodding JQuery.UI自己のオプションをご用意。仕つのコードを見出すことができれば、必要なビットのニーズ変化しています。ればその人がそのアイデア!!!
解決
なにができるのでjqueryを使ったスライダによりフッキングのスライドイベント効果をオーバー)...のようなこと:
$(function() {
var values = [0, 10, 50, 60, 70, 80, 90, 91, 92, 93, 94, 95, 100];
var slider = $("#slider").slider({
slide: function(event, ui) {
var includeLeft = event.keyCode != $.ui.keyCode.RIGHT;
var includeRight = event.keyCode != $.ui.keyCode.LEFT;
slider.slider('option', 'value', findNearest(includeLeft, includeRight, ui.value));
return false;
}
});
function findNearest(includeLeft, includeRight, value) {
var nearest = null;
var diff = null;
for (var i = 0; i < values.length; i++) {
if ((includeLeft && values[i] <= value) || (includeRight && values[i] >= value)) {
var newDiff = Math.abs(value - values[i]);
if (diff == null || newDiff < diff) {
nearest = values[i];
diff = newDiff;
}
}
}
return nearest;
}
});
べきかについて説明していただけま...私は試験ではドラッグは、マウス&用左/右/home/endキー(言うまでも変える必要があり左右にup/downしたい場合は垂直スライダー).
一部の注
- 明らかに価値を配列する手段してください。
- も明らかに、上記のコードを想定したdiv idの"スライダー"です。
- いう作業は不思議だmin/max値と同じではありませんでおmin/maxの値をスライダー(私はあなただけの"分:値[0],max:値[値です。length-1]"としておmin/maxオプションのスライダー&それが必ずしました。
- 明らかにこのオプションな現が低下へのドロップダウンリストがおもいやすくださ---だけを描画するのではなく通常のドロップダウンリスト(デフォルトの状態のクローゼット大小のないjavascript)&を使用しjqueryを非表示にしドロップダウンリストも作成値の配列に基づきます。それだけなのに更新(hidden)ドロップダウンリストとして同時に更新したときのスライダーで上記のコードする場合には、このようなフォーム上で、正しい価値を選択したファームウェアをアップデートされ、また、テストされています
い役立っています。
他のヒント
にEs6で最寄りの数によります。
function findClosest(array, value) {
return array.sort( (a, b) => Math.abs(value - a) - Math.abs(value - b) )[0];
}
let array = [1, 5, 10, 28, 21];
let v = 4;
let number = findClosest(array, v); // -> 5