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

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

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

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

HTML

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

Q&A

2回答

1481閲覧

【サブルーチン化できない】functionの使い方が間違っているのでしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2020/03/24 14:44

前提・実現したいこと

初歩的な内容で申し訳ありません。

商品を陳列して賞味期限をチェック・並べ替えをするプログラムを作成していて、
なんとか見様見真似で1つの商品オブジェクトが完成しました。

ですが、これをサブルーチン化して何個も同じものを作る方法がわかりません。

これをサブルーチン化し、同じ商品を何個も並べたいです。
できれば違う商品も、画像を変えるだけで簡単にたくさん並べたいと思っています。

該当のソースコード

Java html

試したこと

<!-- マウスで商品を移動 -->の前に function Yasai(){ <!-- 日付 -->の後に }

を入力しましたが、実行すると、上記文が文字列となって画面に表示されてしまいました。

作成した命令文

<html> <head> <title>オペレーション</title> <body> <img src="冷蔵庫.png" alt="冷蔵庫"> <!-- --> <!-- マウスで商品を移動 --> <script> var obj; var offsetX; var offsetY; function doInit() { if (document.layers /* Netscape Communicator 4.* */) { objlist = document.layers; } else if (document.all /* Internet Explorer 5.* */) { objlist = document.all.tags("SPAN"); } else if (document.getElementsByTagName /* Netscape 6 */) { objlist = document.getElementsByTagName("SPAN"); } else { return; } for (i = 0; i < objlist.length; i++) { if (document.layers) { objlist[i].captureEvents(Event.MOUSEDOWN); } objlist[i].onmousedown = onMouseDown; } if (document.layers) { document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP); } document.onmousemove = onMouseMove; document.onmouseup = onMouseUp; } function onMouseDown(e) { obj = this; if (document.layers) { offsetX = e.layerX; offsetY = e.layerY; } else if (document.all) { offsetX = event.offsetX + 2; offsetY = event.offsetY + 2; } else if (obj.getElementsByTagName) { offsetX = e.pageX - parseInt(obj.style.left); offsetY = e.pageY - parseInt(obj.style.top); } return false; } function onMouseMove(e) { if (!obj) { return true; } if (document.layers) { obj.pageX = e.pageX - offsetX; obj.pageY = e.pageY - offsetY; } else if (document.all) { obj.style.left = event.clientX - offsetX + document.body.scrollLeft; obj.style.top = event.clientY - offsetY + document.body.scrollTop; } else if (obj.getElementsByTagName) { obj.style.left = e.pageX - offsetX; obj.style.top = e.pageY - offsetY; } return false; } function onMouseUp(e) { obj = null; } </script> </head> <body onload="doInit()"> <body style="font-size:11px;"> <span style="position:absolute; top:100px; left:100px; width:80px;"> <div style="position: relative; display:inline-block;"> <img src="やさい.png" width=135 height=150 alt="やさい"> <div style="position: absolute; top: 17; left: 33; max-width: 100%; max-height: 100%; padding: 5px; text-align: left;"> <span style="transform: rotate(18deg); display: inline-block;"> <p> <!-- 日付 -->

<span id="view_time"></span>

<script type="text/javascript"> var x = Math.floor(Math.random() * 9); var y = Math.floor(Math.random() * 2); var z = Math.floor(Math.random() * 9); document.getElementById("view_time").innerHTML = getNow(); function getNow() { var now = new Date(); var year = now.getFullYear() +y -2000; var mon = now.getMonth() +x ; var day = now.getDate() ; if (now.getMonth() > 12 ) { now.getMonth() -12} if (now.getDate() > 28 ) { now.getDate() -28} //出力用 var s = year + "." + mon + "." + day; return s; } </script> </p> </span> </div></div> </body> </span> </body> </body> </html>

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

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

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

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

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

guest

回答2

0

ですが、これをサブルーチン化して何個も同じものを作る方法がわかりません。
これをサブルーチン化し、同じ商品を何個も並べたいです。

とりあえず以下のようなコードを追加することで商品を何個も並べられますが、それをサブルーチン化とは呼びません。

html

1<span style="position:absolute; top:100px; left:300px;"> 2 <img src="アイテム2.png" width=135 height=150 alt="アイテム2"> 3</span> 4 5<span style="position:absolute; top:100px; left:500px;"> 6 <img src="アイテム3.png" width=135 height=150 alt="アイテム3"> 7</span>

質問に書かれている「試したこと」があまりに的外れなことから、あなたはコードの意味が理解できていないようです。
またhtmlの構造も破綻していおり、おそらく参考にしたサイトが古いのでしょうがjavascriptの書き方が20年前の水準のものです。

試行錯誤して目的のものをなんとか組もうとする姿勢は悪くありませんが、それを行う以前に最低限htmlやjavascriptについて基本的な学習を行う必要があると思います。

投稿2020/03/24 15:27

ku__ra__ge

総合スコア4524

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

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

0

【サブルーチン化できない】functionの使い方が間違っているのでしょうか

急がば廻れ」という回答しかできません。

見様見真似

紙の「原稿用紙」にも書き方があるように、ウェブブラウザに表示する「ページ」にもHTMLというルールがあります。
原稿用紙そのものですら、真っ白な紙に、一定の規則で線が引かれ、枠組みが設けて、ルールに従いやすい様式(フォーマット)になっています。
HTMLは常に真っ白なテキストファイルに<html>要素や <head> 要素、 <body> 要素といった枠組みを設け、HTMLのルールに従った記述をしなければなりません。

本当に何も知らない所からの挑戦でしたら、せめて、とほほのWWW入門 の「基礎編」ような、10年前は十分に通用していた(現在では「若干の歴史は感じるものの、使えなくはない」)内容は習得しておくべきかと思います。


このようなマークアップをテンプレートに表示したい内容を研究してみてください。

html

1<!doctype html> 2<html> 3<head> 4 <meta charset="utf-8"> 5 <title>オペレーション</title> 6</head> 7<body> 8 <!-- 画面に表示したい内容をマークアップ --> 9 <script> 10 /* javascript */ 11 </script> 12</body> 13</html>

※原稿用紙の書き方同様、しっかりと学べば、HTMLは誰にでも書けるものですので、まずは基礎学習から始めてみてください。

投稿2020/03/24 22:58

AkitoshiManabe

総合スコア5434

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問