![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
js初心者です。
ネットの記事を参考にプログラムを書いたのですが、<!doctype html>を打つとプログラムが作動しません。どこが間違っているのかわからないので教えてくれると助かります。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<title>sample</title>
</head>
<body background="background.jpg">
<div id="mario" style="POSITION:absolute;Z-INDEX:1;VISIBILITY:visible;TOP:380px;LEFT:680px;">
<img src="mario.jpg" width="24" height="36">
</div>
<script>
var x = 680;
var y = 380;
var pv = 10;
var left = 0;
var up = 0;
var right = 0;
var down = 0;
function keydown(event){
if(event.which == 37){
left = 1;
}
if(event.which == 38){
up = 1;
}
if(event.which == 39){
right = 1;
}
if(event.which == 40){
down = 1;
}
disp();
}
function disp(){
if(left==1){
x = x - pv;
}
if(up==1){
y = y - pv;
}
if(right==1){
x = x + pv;
}
if(down==1){
y = y + pv;
}
document.getElementById("mario").style.left=x;
document.getElementById("mario").style.top=y;
}
function keyup(event){
if(event.which == 37){
left = 0;
}
if(event.which == 38){
up = 0;
}
if(event.which == 39){
right = 0;
}
if(event.which == 40){
down = 0;
}
}
document.onkeydown = keydown;
document.onkeyup = keyup;
</script>
</body>
</html>
No.1ベストアンサー
- 回答日時:
こんにちは
要素の位置指定には単位が必要ですので、お忘れなきように。
>document.getElementById("mario").style.left=x;
>document.getElementById("mario").style.top=y;
↓ ↓ ↓
document.getElementById("mario").style.left = x + "px";
document.getElementById("mario").style.top = y + "px";
なお、
><!doctype html>を打つと~~
2文字目が全角なので、DOCTYPE宣言とはみなされないはずです。
No.2
- 回答日時:
<!doctype html> を指定すると、Web ブラウザは
「後方互換モード」ではなく、
「標準準拠モード」に切り替えます。
ご質問の場合ですと、後方互換モードの振る舞いである
「CSS パーサは単位のない数値を px 指定として解釈」が無くなる為に
style の指定が無視されていると思われます。
誤: style.left = x;
正: style.left = x + 'px';
標準準拠モードを考慮していないような古い記事を教科書としていると、
このモード間の違いに悩まされることが多いので、
出来るだけ新しい情報源を基に勉強することをお勧めします。
参考
https://developer.mozilla.org/ja/docs/Web/CSS/left
https://developer.mozilla.org/ja/docs/Web/HTML/Q …
https://developer.mozilla.org/ja/docs/Mozilla_Qu …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
ボタンのID名を取得するには?
-
function の return 値を表示し...
-
「オブジェクトを指定してくだ...
-
月ごとに背景色を変える
-
html javascript 作った配列を...
-
SCRIPT5007: 未定義または NULL...
-
フォーカス移動抑止について
-
IEの拡大・縮小機能をWebページ...
-
bodyタグのfocus
-
<a href="#" …>の意味を教えて...
-
<div>のタッチ状態を維持したま...
-
別ファイルのfunctionの読み込み方
-
プラグイン無しでContactform7...
-
SQLのWHEREで全てを質問する方法
-
ウインドウを縮小しても文字を...
-
プルダウンメニューを別ファイ...
-
Dreamweaver で 外部JSを読み込...
-
「関数が定義されていない」と...
-
window.openで同画面遷移しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
getElementsByNameで要素が取得...
-
JavaScriptでiframeの内容を「...
-
function の return 値を表示し...
-
SCRIPT5007: 未定義または NULL...
-
ボタンのID名を取得するには?
-
JavaScript でキーを送る
-
フォーカス移動抑止について
-
乱数を一定時間毎に表示させた...
-
ボタンを押してテキストエリア...
-
bodyタグのfocus
-
JavaScriptでのEnterキーとAlt+...
-
自動ジャンプでフォームデータ...
-
一定時間画像を表示させ、その...
-
リンク移動先のURLを取得
-
idHOGEで取得したinnerText(数...
-
「オブジェクトを指定してくだ...
-
html javascript 作った配列を...
-
キーを押している間の時間を計...
-
チェックボックスの選択パター...
-
Operaでのobjectタブの高さ変更
おすすめ情報
作っているプログラムは十字キーに対応して画像を上下左右に動かすプログラムです。
本当に初心者ですので易しめでよろしくお願いします。m(__)m