• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スライド機能について)

カルーセルを自作する際の注意点とボタンの実装方法

このQ&Aのポイント
  • スライド機能について勉強のため、カルーセルを自作しています。カルーセルの仕組みや実装方法について詳しく教えていただきたいです。また、ボタンの実装方法やダウンボタンの動作についてもご教示いただきたいです。
  • カルーセル自作の際、HTML、CSS、JavaScriptのコードを用意しました。カルーセルの幅や高さ、画像の配置などを指定しています。ただ、上向きボタンの実装方法がわからず困っています。上向きボタンをクリックした時に、カルーセルが上にスクロールするようにしたいです。また、見えている画像の枚数や動かす画像の枚数を自由に変えることができるようにしたいです。
  • 現在はダウンボタンの実装は問題なくできていますが、上向きボタンの実装がうまくいっていません。上向きボタンを押すと、上にスクロールするようにしたいです。また、カルーセルの見えている画像の枚数や動かす画像の枚数は変更可能にしたいです。なお、target.find('li').slice(0,moveLength).clone(true)という部分をtargetList.slice(0,moveLength).clone(true)に変更すると正常に動作しないようです。なぜかご教示いただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

こんにちは。 >ただ、btn_upについてはどのように記述すれば良いかがわからず ほとんど、btn_downの処理と同じではないでしょうか。(方向が逆になるだけ) 簡単に整理すれば  1)リストの最後から移動コマ分の複製をリストの前に追加  2)リストの表示位置を調整(追加する前と同じになるように)  3)リストの表示を移動(アニメーション)  4)(コールバックで)リストの最後から移動分のリストを削除 みたいな感じ。 >var clone = target.find('li').slice(0,moveLength).clone(true); >このtarget.find('li')を変数に格納しているtargetListにすると >動作しなくなってしまいます。 最初にtargetListを定義したときは初期状態の要素構成で定義されています。 その後、アニメーションをするとクローン(初期の要素とは別要素)が追加され、もとからあった要素は削除され、順序も変わってしまいます。 それなので、後からtargetListを参照しても該当する要素がすでになかったり、その時の表示状態とは順序が変わっていたりするのでうまくいかないのではないでしょうか。 カルーセルの方法として、ご提示のように個々のリストをコピーしながら順次入れ替えてゆく方法と、初期設定で表示コマ分だけリストに追加しておいて、後はUL要素全体を移動することで表示位置を変えるだけ(LI要素は入れ替えない)という方法が考えられます。 後者の方法であれば要素が入れ替わることがないので、仮にtargetListを参照しても実際の構成と同じものが得られるはずです。 検索すると、先人たちのサンプルがいろいろ見つかると思いますので、考え方の参考にすると良いのではないでしょうか? また、上記の両方の方法で作成してみるというのも勉強に役立つかもしれません。

yukiponta
質問者

お礼

ご回答いただきありがとうございました! 無事出来ました。本当に感謝しております。 またご相談させていただくかもしれませんが、 宜しくお願い致します。

yukiponta
質問者

補足

ご回答本当にどうもありがとうございましました。実際にやってみます!また、やってみて問題なくできれば良いのですが、もしつまづいたらもう一度こちらで質問させて頂きたく、思っております。 ベストアンサーとさせて頂きますが、もう少々お待ちいただければ幸いです。よろしくお願いいたします。

関連するQ&A