このコードのgithub
前提・実現したいこと
jsを用いて、背景画像を切り替えをしたい
発生している問題・エラーメッセージ
おそらく画像の読み込みが上手く行ってなくて
上記のようなエラーが出ます
画像のパスの指定や、設置は上手くいってると思うのでなぜこのエラーが出るのか分かりません
画像のアドレスを指定すれば上手く表示されるのですが、
js
1$(function() { 2 var i = 1; 3 setInterval(function() { 4 if(i > 3) i = 1; 5 $("#slideshow").css("background-image","url('/app/assets/images/coffee"+i+".jpg')"); 6 i++; 7 }, 1000 8 ); 9});
このようなコードだと、アドレスでは機能しません、、、。
()
該当のソースコード
views/shared/_form.html.erb
erb
1<div id="slideshow"> 2<div class="registration-main"> 3 4<%= form_with model: @user, local: true do |f| %> 5 6<div class='form-wrap'> 7 <div class='form-header'> 8 <h1 class='form-header-text'> 9 会員情報入力 10 </h1> 11 </div> 12 <% flash.each do |message_type, message| %> 13 <div class="alert-<%= message_type %>"><%= message %></div> 14 <% end %> 15 <%= render 'shared/error_messages', object: f.object %> 16 17 <div class="form-groups"> 18 <div class="form-group"> 19 <div class='form-text-wrap'> 20 <label class="form-text">ニックネーム</label> 21 <span class="indispensable">必須</span> 22 </div> 23 <%= f.text_area :nickname, class:"input-default", id:"nickname", placeholder:"例) セイレーン", maxlength:"40" %> 24 </div> 25 <div class="form-group"> 26 <div class='form-text-wrap'> 27 <label class="form-text">プロフィール画像を設定</label> 28 <span class="indispensable">任意</span> 29 </div> 30 <%= f.file_field :image, class:"input-default" %> 31 </div> 32 <% unless current_user && logged_in?%> 33 <div class="form-group"> 34 <div class='form-text-wrap'> 35 <label class="form-text">メールアドレス</label> 36 <span class="indispensable">必須</span> 37 </div> 38 <%= f.email_field :email, class:"input-default", id:"email", placeholder:"PC・携帯どちらでも可", autofocus: true %> 39 </div> 40 <div class="form-group"> 41 <div class='form-text-wrap'> 42 <label class="form-text">パスワード</label> 43 <span class="indispensable">必須</span> 44 </div> 45 <%= f.password_field :password, class:"input-default", id:"password", placeholder:"6文字以上の半角英数字" %> 46 <p class='info-text'>※英字と数字の両方を含めて設定してください</p> 47 </div> 48 <div class="form-group"> 49 <div class='form-text-wrap'> 50 <label class="form-text">パスワード(確認)</label> 51 <span class="indispensable">必須</span> 52 </div> 53 <%= f.password_field :password_confirmation, class:"input-default", id:"password-confirmation", placeholder:"同じパスワードを入力して下さい" %> 54 </div> 55 <% end %> 56 </div> 57 58 <div class='register-btn'> 59 <% if current_user && logged_in? %> 60 <%= f.submit "更新",class:"register-red-btn"%> 61 <% else %> 62 <%= f.submit "会員登録" ,class:"register-red-btn" %> 63 <% end %> 64 </div> 65 66 <% unless current_user?(@user) %> 67 <div class="signin"> 68 <p>アカウントをお持ちですか?</p> 69 <%=link_to "ログインする",login_path, class: "signin-path"%> 70 </div> 71 <% end %> 72 73 <p class='register-info'>本人情報の登録について</p> 74 75</div> 76 77<% end %> 78</div> 79</div>
scss
1#slideshow{ 2 width: 100%; 3 height: 100%; 4 //background-image: url("/app/assets/images/coffee1.jpg"); 5} 6
試したこと
jpg形式の保存を試みた。
アドレスだと上手く表示されるので、
js
1$(function() { 2 var i = 1; 3 setInterval(function() { 4 if(i > 3) i = 1; 5 $("#slideshow").css("background-image","url('画像のアドレス')"); 6 i++; 7 }elseif (i = 2){ 8 $("#slideshow").css("background-image","url('画像のアドレス')"); 9 i++; 10 }elseif(i = 3){ 11 $("#slideshow").css("background-image","url('画像のアドレス')"); 12 i++; 13 } 14 ); 15});
とか、やって見ましたが、jsの記法にそこまで詳しくないで、構文エラーが出てしまいました。
一番いいのは、jpg画像がしっかりと表示されることなのですが、、、。
また、cssで
scss
1#slideshow{ 2 width: 100%; 3 height: 100%; 4 background-image: url("/app/assets/images/coffee1.jpg"); 5} 6
で、vscodeでコマンドキーを押しながら、("/app/assets/images/coffee1.jpg")
をクリックしたら、しっかりその画像が表示されたのですが、
開発環境のブラウザには反映されてませんでした。。。
cssも,画像アドレスを指定すれば表示されるのでよく分かりません。。。
vscodeでコマンドを押しながら("/app/assets/images/coffee1.jpg")
をクリックしたらその画像が表示されるということはパスの指定は間違ってないはずなのですが、、、
回答1件
あなたの回答
tips
プレビュー