2024-04-19
サイズを指定できるオーダー畳。今の畳の大きさ、枚数から部屋の大きさを計算して、新しい枚数を指定して大きさを計算するWebアプリを作ってみました。


「tatami calc」

1回計算するだけなら、ExcelやNumbersなどの表計算ソフトで計算式を設定するのが手軽ですが、プログラミングしてWebアプリ化すると誰かに共有できて便利です。

アプリづくりの大まかな流れ
1. HTMLでアプリの構造を作る
2. JavaScriptで動きをつくる
3. CSSでデザインする
4. もしもっと調整するなら1へ
5. 完成!

使う人をイメージして、デザインにこだわってみたり、便利な機能を足してみたり、夢が広がるのがアプリづくりのいいところ!

今回の畳計算アプリ、HTMLとJavaScriptとCSSによるプログラムはこのようになっています。 <!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><link rel="icon" href="data:"> <title>tatami calc</title> </head><body> <h1>tatami calc</h1> <table> <tr><th></th><th>幅</th><th></th><th>長さ</th></tr> <tr><th>畳の大きさ</th><td><input id=inw value=800>mm</td><td>x</td><td><input id=inh value=800>mm</td></tr> <tr><th>畳の枚数</th><td><select id=selnw></select></td><td>x</td><td><select id=selnh></select></td></tr> <tr><th>部屋の大きさ</th><td><span id=tdw></span>mm</td><td>x</td><td><span id=tdh></span>mm</td></tr> <tr><th>新しい畳の枚数</th><td><select id=selnw2></select></td><td>x</td><td><select id=selnh2></select></td></tr> <tr><th>新しい畳の大きさ</th><td><span id=tdw2></span>mm</td><td>x</td><td><span id=tdh2></span>mm</td></tr> <tr><th>差分</th><td><span id=tdwd></span>mm</td><td>x</td><td><span id=tdhd></span>mm</td></tr> </table> <footer> <a href=https://github.com/code4fukui/tatami-calc/>src on GitHub</a> </footer> <script type="module"> const calc = () => { tdw.textContent = parseInt(inw.value * selnw.value); tdh.textContent = parseInt(inh.value * selnh.value); tdw2.textContent = parseInt(inw.value * selnw.value / selnw2.value); tdh2.textContent = parseInt(inh.value * selnh.value / selnh2.value); tdwd.textContent = tdw.textContent - tdw2.textContent * selnw2.value; tdhd.textContent = tdh.textContent - tdh2.textContent * selnh2.value; tdw2.style.backgroundColor = tdw2.textContent > 1000 ? "red" : ""; tdh2.style.backgroundColor = tdh2.textContent > 2000 ? "red" : ""; }; ["selnw", "selnh", "selnw2", "selnh2"].forEach(id => { const sel = document.getElementById(id); for (let i = 1; i < 10; i++) { const opt = document.createElement("option"); opt.value = i; opt.textContent = i + "枚"; sel.appendChild(opt); } sel.oninput = calc; }); calc(); </script> <style> body { text-align: center; font-family: sans-serif; } input { width: 3em; font-size: 18px; margin: 0 .2em; text-align: right; } select { font-size: 18px; } table { border-collapse: collapse; display: inline-block; } th, td { border: 1px solid #ddd; min-width: 3em; padding: .3em; } td { text-align: center; } footer { margin: 1em; } footer a { color: gray !important; } </style> </body></html> HTMLによる構造、JavaScript、CSSの順に並べています。JavaScriptとCSSの順は逆でもOKですし、長くなってきたらファイルで切り分けることもできます。


Webプログラミング道場、ES-Jamでいろいろいじって遊んでみましょう!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS