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

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

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

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

jQuery

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

Q&A

解決済

1回答

1263閲覧

スライダーについて教えてください

js_donzoko3

総合スコア14

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2016/08/24 15:11

今スライダーをプラグイン無しで自作で作っているのですが上手くいきません。
サイトで参考にして作ってはいるのですが敷居が高すぎたのかダメです。
ソースがなくて申し訳ないのですが、http://apoc.jp/wp/wp-content/data/127/preview12.html
こちらを参考に教えていただけたら嬉しいです。

上記のスライダーだと右→をクリックしていったら、6枚目で1枚目に逆戻りになってしまいます。
希望としては6枚目で右→を押したら1枚目に戻るのですが、ループしている感じにしたいのですができません。
逆に1枚目の時に左←を押したら6枚目をループしている感じにしたいです。
こういったやり方をするにはcloneメソッドを使えばとあったのですがわかりません…
あと画像のところは1枚ではなく複数表示(4〜5枚)させたいです。

わかる範囲で構いませんし、希望通りのものがサイトにある!でも構いません。
(※最悪参考書でも構いません)
どなたかご教授お願いします。

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

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

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

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

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

kei344

2016/08/24 15:21

「プラグイン無し」にこだわる理由などありますか?技術を付けたいと言うのであれば、少なくともコードを書かれたほうが良いと思います。
js_donzoko3

2016/08/24 16:27

仰る通りです。 技術力を付けたいのでとにかくコードを書いて分からなければ、コードと一緒に質問させていきます。 ありがとうございました。
guest

回答1

0

ベストアンサー

今回は気まぐれにサイトを覗いてしまいましたが、個人のサイトはなにがおこるかわからないのでできるだけコードはここに示すか、有名なコード共有サイトなどを利用してください。

右方向に関してだけ、一例を示します(とはいえ、コードが別サイトですし、説明だけになりますが)

とりあえずなぜそうなるか(巻き戻るようになるのか)は理解できてるでしょうか?
slideCurrentを0にして、アニメーションしているから当然そうなることはわかっていますか?
(今の動きが認識できていないと説明を理解するのも難しいと思うので)

あくまで基本形ということでヒントぐらいに見てほしいですが、
たとえばあらかじめ 1枚目を最後にも表示しておきます。
そうすれば、5回目のクリックでもアニメーションはされます(1枚目にループしたかの様に)。

そのアニメーションが終わったタイミングでアニメーションさせずにleftとcurrentを本当の1枚目に戻します。
するとループしているように見えます。

html

1<div class="slide"><img src="image05.jpg" height="200" width="500" alt=""></div> 2<div class="slide"><img src="image01.jpg" height="200" width="500" alt=""></div>

javascript

1$('.slideSet').stop().animate({ 2 left: slideCurrent * -slideWidth 3},{complete: function () { 4 if(slideCurrent == slideNum - 1){ 5 slideCurrent = 0; 6 $('.slideSet').css('left', 0); 7 } 8}});

左方向のボタンの事を一切考えていません。
元のコードも削ってないので、右を連打すると(0に戻すアニメーションが働いて)おかしな動きになります。
一見答えっぽい動きをしますが、考えるべきはいろいろあるのでヒント止まりと捉えてくださいです。

1枚目を余計に置かないといけないという欠点を補うために(最初からでなく、コードで)動的に1枚目を右側に配置することを考えてみてください。
あとはそこから応用(ひとつではありません)が思いつくかどうかですね。

投稿2016/08/24 15:50

flied_onion

総合スコア2604

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問