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

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

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

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

Q&A

解決済

1回答

2112閲覧

slickで作った無限ループスライダーをホバー時に速度変化させたい

mmmaaasuu

総合スコア13

jQuery

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

0グッド

0クリップ

投稿2020/09/27 14:36

編集2020/09/28 09:32

ブラウザ幅100%に対して無限ループするスライダーをslickで作りました。
スライダー近くに配置したボタンにオンマウスした時に流れるスピードを早くしたいのですが、やり方お分かりになる方いらっしゃられないでしょうか?

ダメもとでホバー時にclass名の追加、削除で制御できないかなど試しましたがうまくいかず。よろしくお願いいたします。

<div id="fv_slider02"> <div><a href="/"><img src="img/01.jpg" alt=""></a></div> <div><a href="/"><img src="img/02.jpg" alt=""></a></div> <div><a href="/"><img src="img/03.jpg" alt=""></a></div> <div><a href="/"><img src="img/04.jpg" alt=""></a></div> <div><a href="/"><img src="img/05.jpg" alt=""></a></div> <div><a href="/"><img src="img/06.jpg" alt=""></a></div> <div><a href="/"><img src="img/07.jpg" alt=""></a></div> <div><a href="/"><img src="img/08.jpg" alt=""></a></div> </div> <div id="btn"><img src="img/btn.jpg" alt=""></div> <style> #fv_slider02{margin: 40px 0 0 0;padding: 100px 0;background:#e5e5e5;} #fv_slider02 div{width: 300px;margin: 0 25px;} #fv_slider02 .slick-list {overflow: visible;} #btn {width: 300px;height:100px;margin: 30px auto;} </style> <script> $('#fv_slider02').slick({ autoplay:true, autoplaySpeed: 0, cssEase: 'linear', speed: 5000, dots:false, arrows:true, initialSlide:0, touchMove:false, swipe:false, pauseOnHover:false, }); </script>

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

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

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

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

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

kuma_kuma_

2020/09/27 23:23

slickはjavasuriptではなくjQueryのプラグインだよね?
kuma_kuma_

2020/09/27 23:27 編集

あと > スライダー領域にオンマウス した時に流れるスピードを早くしたいのですが え?早くするの?停止するなら判るけど...
mmmaaasuu

2020/09/28 08:07 編集

すみません、修正しました。 質問内容も文章も 「配置したボタンにオンマウスした時に流れるスピードを早くしたい」 に具体化させました。
kuma_kuma_

2020/09/28 06:26 編集

それならサンプルのHTMLとCSS,JSの追記をお願いします。 (ボタンの表示位置や方法で対応が変わってくる) ?ボタン?<div>とかじゃなくて?
mmmaaasuu

2020/09/28 08:03

ありがとうございます。追記しました。 #btnにホバーした時に速度アップ、非ホバーで速度が元に戻るようにしたいです。
kuma_kuma_

2020/09/28 08:09

せめてimg/btn.jpgのサイズを教えて
mmmaaasuu

2020/09/28 09:33

サイズ記入しました。
guest

回答1

0

ベストアンサー

【jQuery】カルーセルスライダーslickの使い方とサンプル集
マウスフォーカス当てたら停止ならあるけど

スピードを早くしたいならフォーカスイベント取得で
speedの値変化させればよいのだけれども早くするの?

追記
結局speedの値変更しても応答まで時間が2~5秒ぐらいかかってしまったので
一度リセットして再設定にしました。
ほかは質問にあった内容と同じです。

javascript

1$(function () { 2 // slickの設定 3 function slickinit(spped){ 4 return { 5 autoplay:true, 6 autoplaySpeed: 0, 7 cssEase: 'linear', 8 speed: spped, 9 dots:false, 10 arrows:true, 11 initialSlide:0, 12 touchMove:false, 13 swipe:false, 14 pauseOnHover:false, 15 } 16 } 17 18 // 初期設定 19 $('#fv_slider02').slick(slickinit(5000)); 20 21 // マウスオーバー 22 $('#btn').mouseover(function(e) { 23 $('#fv_slider02').slick('unslick'); // 設定をリセット 24 $('#fv_slider02').slick(slickinit(50)); // 再設定 25 //$('#fv_slider02').slick('slickSetOption', 'speed', 50, false); /* こっちだと反応が遅い */ 26 console.log("mouseover"); 27 }); 28 // マウスアウト 29 $('#btn').mouseout(function(e) { 30 $('#fv_slider02').slick('unslick'); // 設定をリセット 31 $('#fv_slider02').slick(slickinit(5000)); // 再設定 32 //$('#fv_slider02').slick('slickSetOption', 'speed', 5000, false); /* こっちだと反応が遅い */ 33 console.log("mouseout"); 34 }); 35 36});

投稿2020/09/27 23:31

編集2020/09/28 09:47
kuma_kuma_

総合スコア2506

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

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

mmmaaasuu

2020/09/28 06:18

はい、追記した通りでボタン要素にオンマウス した時だけ速度を早めたいです。 slick フォーカスイベント で調べてみます。 差し支えなければサンプルとなるようなコードも教えていただけますと大変ありがたいです。
mmmaaasuu

2020/09/28 12:22

誠にありがとうございます!実装し挙動確認いたしました。 設定をリセットするとスライダーが1枚目からスタートして速度が上がる、 設定をリセットしないとスライダーが一定位置まで動かないと速度変化が起きない、という状態かと思います。 スライダーの位置を引き継いだ上で、オンマウスでタイムラグなく速度変化するのが理想の挙動でして頂戴したコードを参照させていただいて調べてみます。 厚かましいお願いですが、もしこうすれば実現できるというのをご存知でしたら教えていただけますと幸いです。ホバーではなくクリックだったらできるなど、多少条件変わっても実現できるとありがたいです。
kuma_kuma_

2020/09/28 16:41

> 設定をリセットしないとスライダーが一定位置まで動かないと速度変化が起きない 多分そうなんだよね。それでコメントで $('#fv_slider02').slick('slickSetOption', 'speed', 50, false); 残しておいたの ただスライダーの位置を引き継いだ上でとなると マウスオーバー時 1. 表示位置を取得 2. 設定リセット 3. 再設定 4. 表示位置を再設定 ※この時タイムラグが発生 ってなると思う。 一番はやいのはslickを使わないで実装する方法だね。 ただここでの質問とは内容が変わるからお答えできないので自分で調べてみてね
mmmaaasuu

2020/10/01 05:33

ご丁寧にありがとうございました!調べてみます。 kuma_kumaさんでしたらこの仕様のスライダー実装する場合ならこのスライダー使うってございますか?
kuma_kuma_

2020/10/01 05:42

> この仕様のスライダー実装する場合 CSSアニメーションだと現在位置の取得が難しいので JavascriptまたはjQueryで処理を1から作るかな?
mmmaaasuu

2020/10/01 07:35

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問