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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スライダー

GUIのグラフィカルウィジェットのひとつです。インジケーターを動かすことで値を調節可能とします。

JavaScript

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

Q&A

1回答

1657閲覧

スライドを作りたい、関数の使い方を整理したい

HarunaMONMON

総合スコア8

スライダー

GUIのグラフィカルウィジェットのひとつです。インジケーターを動かすことで値を調節可能とします。

JavaScript

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

0グッド

0クリップ

投稿2016/09/01 01:56

###前提・実現したいこと
・プログラミングを始めたばかりの初心者です。
・javascript以外の言語はわかりません。(HTML, CSSは勉強済み)

・3枚のtrainの写真を使ったスライダーを作りたい(train1,train2,train3)
・beforeボタンを押すと一つ前の写真に移動(train3 -> train2 -> train1 -> train3)
・afterボタンを押すと一つ前の写真に移動(train1 -> train2 -> train3 -> train1)

###発生している問題・エラーメッセージ
・スライドが変化しない
・OPTION1-3が自分で考えた回答コードだが、どれも機能しない
・option1-3がjavascriptのルールから考えた時になぜ機能しないのかわからないし、3つの違いがよくわからない
・本から持ってきた問題のため、回答はわかるのだが、なぜ自分のコードが機能しないのか、根本的なjavascriptの理解が足りていないため理解できずしっくりこない。

###該当のソースコード1

javascript

1 2var photos = ['train1.jpg', 'train2.jpg', 'train3.jpg']; 3 4var current = 0; 5 6var changeImage = function(num){ 7 if ( current + num >= 0 && current + num >= photos.length){ 8 current += num; 9 document.getElementById('#img').src = photos[current]; 10 } else if ( current + num = -1 ){ 11 document.getElementById('#img').src = photos[2]; 12 } else { 13 document.getElementById('#img').src = photos[0]; 14 } 15}; 16 17$(function(){ 18 $(#after).on('click',function(current){ 19 changeImage(1); 20 }); 21 22 $(#before).on('click', function(current){ 23 changeImage(-1); 24 }); 25}); 26 27

###該当のソースコード2

javascript

1var photos = ['train1.jpg', 'train2.jpg', 'train3.jpg']; 2 3var current = 0; 4 5var changeImage = function(num){ 6 if ( current + num >= 0 && current + num >= photos.length){ 7 current += num; 8 document.getElementById('#img').src = photos[current]; 9 } else if ( current + num = -1 ){ 10 document.getElementById('#img').src = photos[2]; 11 } else { 12 document.getElementById('#img').src = photos[0]; 13 } 14}; 15 16document.getElementById('prev').onclick = function() { 17 changeImage(-1); 18}; 19document.getElementById('next').onclick = function() { 20 changeImage(1); 21}; 22``` 23 24###該当のソースコード3 25``````javascript 26 27var photos = ['train1.jpg', 'train2.jpg', 'train3.jpg']; 28 29var current = 0; 30 31var changeImage = function(num){ 32 if ( current + num >= 0 && current + num >= photos.length){ 33 current += num; 34 document.getElementById('#img').src = photos[current]; 35 } else if ( current + num = -1 ){ 36 document.getElementById('#img').src = photos[2]; 37 } else { 38 document.getElementById('#img').src = photos[0]; 39 } 40}; 41 42 43$(function(current){ 44 $(#after).on('click',function(){ 45 changeImage(1); 46 }); 47 48 $(#before).on('click', function(){ 49 changeImage(-1); 50 }); 51}); 52 53```

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

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

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

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

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

coco_bauer

2016/09/01 02:08

Javascriptで操作されるHTMLを示して下さい。 HTMLがどうなっているのかが判らないと、コードを理解する事が出来ませんから。
kei344

2016/09/01 02:08

質問フォームのタイトル横にある初心者マークを押すことで「初心者である」ということはわかりますので、本文に「初心者」と書かなくても大丈夫です。
guest

回答1

0

JavaScript

1// document.getElementById('#img') 2// ↓ 3 document.getElementById( 'img' )

JavaScript

1// $(#after).on('click',function(){}); 2// ↓ 3 $( '#after' ).on( 'click',function(){}); // beforeも同じく

インデントを付ける癖は付けたほうが良いです。自動で付けてくれるエディタなども有ると思うので、一度探してみてはいかがでしょう。また、下記のようなツールで整形する手段もあります。

【Online JavaScript beautifier】
http://jsbeautifier.org/

jQueryと通常のJavaScriptのDOM操作(getElementByIdなど)が混じっていますが、しばらくはどちらかのみでDOM操作を勉強されるほうが混乱は少ないと思います。

投稿2016/09/01 02:14

編集2016/09/01 02:22
kei344

総合スコア69407

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

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

HarunaMONMON

2016/09/05 01:42

アドバイスありがとうございます。 まずは、jsに絞って勉強しようと思います。 丁寧なご回答ありがとうございます。感謝いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問