はじめに
画像アドレスを入力することで、
背景画像を動的に変更する方法について書いていきます
実行
基本となるビューファイルは次のようにします。
wall.haml.html
.body=text_area"object_name",{class: "wall-url"},{id: "wall-url"}.wall-btn画像を変える
texr_area
が画像アドレスを張り付ける部分で、.wall-btn
を押したら画像を変わるものとします。
次にJavaScriptです。(jQueryで書いています)
wall.js
$(function(){$(".wall-btn").on("click",function(){})});
これで、.wall-btn
をクリックした時に発火する関数ができました。
次は、処理の内容を書いていきます。
wall.js
$(function(){$(".wall-btn").on("click",function(){varimage=$("#wall-url").val();})});
これでテキストエリアに入力された画像アドレスを取得し、変数image
に代入できます。
テキストエリアのid
がwall-url
となっているので、#wall-url
の中身を取得するようにすればよいわけです。
最後に、背景画像を取得した画像アドレスのものに変更します。
wall.js
$(function(){$(".wall-btn").on("click",function(){varimage=$("#wall-url").val();$(".body").css('backgroundImage',`url("${image}")`);})});
注意するところは、background-image
を変更する処理ですが、
ここではbackgroundImage
となっているところです。-
がなくなって、直後の文字が大文字になっているわけですね。
url("${image}")
の部分は、''
で囲むと${image}
がただの文字列と表示されるので、この表記にしています。
また、url(${image})
としてもエラーになるので、からなず""
をつける必要があります。