アプリ版:「スタンプのみでお礼する」機能のリリースについて

1×18の表の0ます目に0.png、1ます目に1.png…
というように全ますにそれぞれの画像を表示させたいです。

for文の中に背景画像を設定すればできると
言われましたが意味がわかりませんでした…。

書き込む部分ではないかもしれませんが
対応していそうな部分を下に記述しています。
どこになにを書けばできるか教えていただきたいです!


let tbl = document.getElementById("table");
let tr = document.createElement('tr');
for (let i = 0; i < MASU; i++) {
let td = document.createElement('td');
td.index = i;
tr.appendChild(td);
}

(*MASUはconst MASU=18です。)

A 回答 (1件)

こんばんは



最終的に何をしたいのかさっぱりわからないけれど、1行に18セル並べたいってことなのでしょうか?
ご提示の内容だと、空のセルを作るだけみたいなので背景画像にしなくてもよさそうにも思えます。
以下は、セル内に画像要素を入れるような一例です。
・セルサイズは、とりあえず適当に設定してあります。
・画像は同じフォルダ内にあるものと仮定。
・画像のファイル名は「 数値.png 」と決め打ちしています。

<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style>
td{ width: 70px; height: 50px; }
td img{ width: 100%; }
</style>
</head>
<body>

<table id="table"></table>

<script>
const MASU = 18;
let i, td, tr = document.createElement('tr');

document.getElementById('table').appendChild(tr);
for(i = 0; i<MASU; i++){
td = `<td><img src="./${i}.png" /></td>`;
tr.insertAdjacentHTML('beforeend', td);
}
</script>
</body>
</html>

※ 背景画像にしたければ、HTMLを作成する1行を置き換えれば可能です。
td = `<td style='background:url("./${i}.png") 0 0 / contain no-repeat;' /></td>`;
のような感じでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!