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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1374閲覧

DOMを用いて、style.positionを変化させたい

jesushill

総合スコア37

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/04/24 04:20

編集2016/04/24 04:50

初心者のものです。
DOMを使って、divタグを動かそうとしています。
個人的には型変換がうまくいっていないのかと、いじっているのですが
うまくいきません。

どなたかご教授頂けないでしょうか。

lang

1対象タグ 2 <div class = "ball" id = "ball" style = "position:absolute">test</div> 3<script> 4 var ball = document.querySelector(".ball"); 5 6 function go(){ 7 ball.style.left += "100px"; 8 9 setInterval("go()",100); 10</script> 11 12

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

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

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

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

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

guest

回答1

0

多分 += "100px"; ここの部分が問題かと。

JavaScript

1ball.style.left += "100px"; 2// 2回目 "100px100px"; 3// 3回目 "100px100px100px"; 4// 4回目 "100px100px100px100px"; 5// 5回目 "100px100px100px100px100px"; 6// 実際は代入に失敗するので失敗する前の"100px"がball.style.leftには入っている

サンプルを置いときます。
https://jsfiddle.net/3qq66sfy/

HTML

1<style> 2.ball { 3 position: absolute; 4 /* 動きを解りやすくするために形を色を追加 */ 5 width: 100px; 6 height: 50px; 7 background-color: red; 8} 9</style> 10 11<div class="ball">test</div> 12 13<script> 14 var ball = document.querySelector( '.ball' ); 15 var pix = 0; 16 function go() { 17 pix += 100; 18 if ( pix > 700 ) pix = 0; // とりあえず稼動範囲を限定 19 ball.style.left = pix + 'px'; 20 } 21 setInterval( go, 100 ); 22</script>

投稿2016/04/24 05:12

編集2016/04/24 06:10
kei344

総合スコア69407

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

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

jesushill

2016/04/24 05:25

上記のように修正したら出来ました。 本当にありがとうございます!
kei344

2016/04/24 06:12

すいません、「2回目 "100px100px";」のあたりは「もしそう代入ができても」という例なので、実際には代入が成功しない旨追記しました。(サンプルのほうは問題ありません)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問