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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

5342閲覧

slick.jsのオプション設定を動的に行なうには?

aKusano

総合スコア3763

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/09/01 11:03

slick.jsで月別のカレンダーをスライド表示させています。
数カ月分のカレンダー(例えば5,6,7,8,9月分など)がHTML上に記載されているとして、
現在月に該当するカレンダーをスライド表示の初期値に設定したいのですが、
slick.jsのオプション initialSlide の値を動的セットする方法が分かりません。

##できていること
・現在の日時から月の値を取得
・何月分のカレンダーが掲載されているかを配列に格納
・現在月に該当する値が配列の何番目にあるのかを取得

##できないこと
slick.jsのオプション設定であるinitialSlideに、動的に取得した配列番号を
設定しようとしたが、単純に変数を書いただけでは動かなかった。

##現在のコード

JavaScript

1function slideHuck01(){ 2 var w = $(window).width(); 3 var size = 639; 4 var i = new Date(); 5 var month = i.getMonth()+1; 6 var calArray = [5,6,7,8,9]; 7 var num = $.inArray(month, calArray); 8 9 if (w <= size) { 10 $(".jy-calendar").slick({ 11 initialSlide: num //ここに動的な値をセットしたい 12 }); 13 } else { 14 $(".jy-calendar").unslick(); 15 } 16} 17slideHuck01();

プラグインの挙動の中に独自の変数を割りこませる必要があるので、今のように単純に変数名を当てただけではダメなんだろうな、ということはなんとなくわかるのですが、では具体的にどうしたら動的な値を渡すことができるのか見当もつかないといった状況です。。。

Slick.js公式にある「Method」とか「Event」あたりの仕組みを活用する必要がありそうな気もしていますが、公式に乗っているあの情報だけでは具体的にどうコードを書けば良いのか分からないので手が出せていません。

どなたかご教授いただけますと助かります。
よろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

書いていただいたコードをコピペしました(HTMLはテキトーです)。

https://jsfiddle.net/vfmb7j7r/

ロード時に画面幅が640px未満の時、目的通り当月(回答記述時で9月)のカレンダーの位置に移動しています。
Google Chrome、Firefox、Safariで確認しました。

わたしには動いているように見えるのですが、aKusanoさんが動かなった時の状況の詳しい説明が欲しいです。
こちらで認識がもれている要件があるかもしれません。

レスポンシブウェブデザインなサイトで、640pxを境にslickを適用したりさせなかったりしたいとなると、別のロジックが必要です。

いったんご確認いただければと思います。

投稿2016/09/02 05:56

編集2016/09/02 05:59
oti

総合スコア22

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

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

aKusano

2016/09/02 07:17

o_tiさん ご回答有り難うございます。 >>レスポンシブウェブデザインなサイトで、640pxを境にslickを適用したりさせなかったりしたいとなると、別のロジックが必要です。 現状、640px以上ではslick解除、640px未満の時にはslick適用となっています。 知人から「幅を変えた際に slick の呼び出しがされていないためではないか」と指摘を受け、関数の呼び出し方法を教えてもらった以下の形に変更した所無事動作するようにになりました。 $(window).on('resize', slideHuck01).trigger('resize'); 変数の受け渡しが出来ていないのではなく、slick自体の呼び出しがうまくいっていないのが原因だったようです。お騒がせ致しました。 ちなみにこちらのカレンダー表示機能はまだ他にもクリアしないといけないハードルがたくさんありますので、別の質門を立てさせていただくかもしれません。 もし機会がありましたらその際もよろしくお願い申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問