HTMLのinputで選択した画像ファイルをJavaScriptでページの背景画像に設定したい
HTMLとCSSとJavaScriptで自分専用のスタートページを作っています。
CSSでページの全体に背景画像を設定して壁紙にしているのですが、自分でCSSの画像のアドレスを書き換えずに、ページのボタンを押して画像ファイルを選択して画像を変更したいと思っています。
ぼくはJavaScriptの書き方がわかりません。
HTMLのinputで選択した画像ファイルをJavaScriptで背景画像にする方法を教えてください。
ソースコード
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>スタートページ</title> 6 <link rel="stylesheet" href="style.css"> 7 <link rel="icon" href="favicon.svg" type="image/svg+xml"> 8 </head> 9 <body id="body"> 10 <h1>スタートページ</h1> 11 <div id="link"> 12 <!-- サイトのリンク aタグで記述しました --> 13 </div> 14 <label for="backgroundImage" id="backgroundImageUpload"> 15 イメージを選択 16 <input type="file" name="BackgroundImage" id="backgroundImage" accept="image/*"> 17 </label> 18 </body> 19</html>
CSS
1html, body { 2 width: auto; 3 height: 100%; 4 color: #000000; 5 font-size: 20px; 6 font-weight: normal; 7 padding: 0; 8 border: none; 9 outline: none; 10 user-select: none; 11} 12@media (prefers-color-scheme: dark) { 13 html, body { 14 color: #FFFFFF; 15 } 16} 17body { 18 background-image: url("image.jpg"); 19 background-position: center center; 20 background-size: cover; 21 background-repeat: no-repeat; 22 background-attachment: fixed; 23} 24label#backgroundImageUpload input { 25 display: none; 26} 27label#backgroundImageUpload { 28 position: absolute; 29 bottom: 50px; 30 right: 50px; 31 width: 100px; 32 height: 20px; 33 line-height: 20px; 34 display: inline-block; 35 font-size: 20px; 36 font-weight: normal; 37 color: #FFFFFF; 38 background-color: #007AFF; 39 text-decoration: none; 40 cursor: default; 41 border: none; 42 border-radius: 10px; 43 margin: 5px; 44 padding: 10px; 45 text-align: center; 46 outline: none; 47 user-select: none; 48} 49@media (prefers-color-scheme: dark) { 50 label#backgroundImageUpload { 51 color: #000000; 52 background-color: #0A84FF; 53 } 54}
試したこと
検索して調べてHTMLのinputの入力をJavaScriptで取得する方法はわかりましたが、問題のinputの入力を背景画像にする方法がわかりませんでした。
補足情報(FW/ツールのバージョンなど)
コンピュータのOSはWindows 10でVisual Studio Codeを使っています。
回答2件
あなたの回答
tips
プレビュー