teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2142閲覧

noUiSliderのステップ設定などについて

yuko_momi

総合スコア4

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/01/27 05:11

0

1

nouisliderを使って、範囲指定ができるスライダーを作成しました。
そこで、知りたいことが2つあります。

1 
つまみの位置でテキストが
minとmaxは1,000〜99,999円と指定したいのですが「,」を入れるとエラーになってしまうのですが。カンマは使用できないのでしょうか?

js

1var minVal = 1,000; //最小値 2var maxVal = 99,999; //最大値


ステップを
1,000円〜30,000円:1,000円単位
30,000円〜:5,000円単位
というふうに途中で単位を上げたいのですが、どのようにすればいいでしょうか?

js

1var $slider = $('#range').get(0); //スライダー要素 2var $min = $('#min'); //最小値のテキストフィールド 3var $max = $('#max'); //最大値のテキストフィールド 4var minVal = 1000; //最小値 5var maxVal = 99999; //最大値 6var gap = 1000; // 7 8//noUiSliderをセット 9noUiSlider.create($slider, { 10 start: [ minVal - gap, maxVal + gap ], // 11 connect: true, 12 step: gap, 13 range: { 14 'min': minVal - gap, 15 'max': maxVal + gap 16 }, 17 18}); 19 20//noUiSliderイベント 21$slider.noUiSlider.on('update', function( values, handle ) { 22 23 //現在の最小値・最大値を取得 24 var value = Math.floor(values[handle]); 25 26 if ( handle ) { 27 $max.get(0).value = value; //現在の最大値 28 } else { 29 $min.get(0).value = value; //現在の最小値 30 } 31 32 //noUiSlider下部の数値変更 33 $('.noUi-value-large').text(minVal); 34 $('.noUi-value-large:last-child').text(maxVal); 35 36 //最小値以下・最大値以上でinputを空にする 37 if ( $min.get(0).value <= minVal || $min.get(0).value > maxVal ){ 38 $min.val(''); 39 } 40 if ( $max.get(0).value <= minVal || $max.get(0).value > maxVal ){ 41 $max.val(''); 42 } 43 44}); 45 46//最小値をinputにセット 47$min.get(0).addEventListener('change', function(){ 48 $slider.noUiSlider.set([this.value, null]); 49}); 50 51//最大値をinputにセット 52$max.get(0).addEventListener('change', function(){ 53 $slider.noUiSlider.set([null, this.value]); 54});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1. ,(カンマ)は複数の数値を区切るためのものなので、3桁区切りのためのカンマは使えません。数値を見やすくしたいのであれば、_(アンダーバー)を代わりに使えます。

js

1console.log(1_000_000); //出力: 1000000

2. 公式ドキュメントを見ましょう。range内の各キーに対する値に[開始値, 増分]の配列を指定すれば良いようです。
https://refreshless.com/nouislider/examples/#section-non-linear

追記

minとmaxは1,000〜99,999円

1,000円〜30,000円:1,000円単位
30,000円〜:5,000円単位
この場合は以下のようにします。(startの値はテキトーです)

js

1noUiSlider.create($slider, { 2 start: [10000, 50000], 3 connect: true, 4 range: { 5 'min': [1000, 1000], //最小値は1000, 1000~は1000ずつ増加 6 '30%': [30000, 5000], //30000~は5000ずつ増加 7 'max': [99999] //最大値は99999 8 }, 9});

投稿2022/02/03 16:39

編集2022/02/08 08:15
luuguas

総合スコア501

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuko_momi

2022/02/07 16:14

ありがとうございます! カンマは使えないんですね。。。 公式ドキュメントを見ましょう。range内の各キーに対する値に[開始値, 増分]の配列を指定すれば良いようです。 >すみません。。。見てみたのですが、理解ができませんでした。。。
luuguas

2022/02/07 16:38

公式ドキュメントの例ですと、 - 最小値は 0 - 0~500 は連続的に増加 - 500~4000 は500ずつ増加 - 4000~10000 は1000ずつ増加 - 最大値は 10000 という意味です。
yuko_momi

2022/02/07 18:14

どの部分に、どのように記述すればいいのか分からないので、ご教授いただけませんか?
luuguas

2022/02/08 08:15

追記しました。
yuko_momi

2022/02/08 16:04

素晴らしいです!!! 解決しました(><) 丁寧に何度も回答してくださり、本当にありがとうございました!!
luuguas

2022/02/08 16:30

お役に立てたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問