前提・実現したいこと
チャット画面をスクロールで表示しています。
メッセージが多くなり画面の幅を超えると、スクロールバーは上(一番古いメッセージ位置)に表示されるようになります。
LINE等のように表示位置を下(一番新しいメッセージ位置)に固定したくJavaScript
で実装してみたのですが、何も動いてくれません。コードは過去の質問を参考に実装致しました。
エラーメッセージは表示されず、単純にJavaScript
を記述する前と同様、スクロールバーが上に表示されたままになってしまっております。
お力をお貸し頂けると有難いです。
該当のソースコード
room_show.html.erb
rails
1 <div class="message-details messageDetails" id="scroll-inner"> 2 <% if @messages.present? %> 3 <% @messages.includes(:user).each do |m| %> <!-- 以下のメッセージ情報を繰り返し表示。--> 4 <div class="message-detail"> 5 <div class="message-detail-left"> 6 <%= link_to user_path(@user) do %> 7 <img src="<%= "/user_images/#{m.user.image_name}" %>"> 8 <% end %> 9 </div> 10 <div class="message-center-message"><%= m.content %></div> 11 <div class="message-right"> 12 <div class="message-date" style="color: #C0C0C0;"><%= m.updated_at.strftime("%Y/%m/%d") %></div> 13 <div class="message-time" style="color: #C0C0C0;"><%= m.updated_at.strftime("%H:%M") %></div> 14 </div> 15 </div> 16 <% end %> 17 <% end %> 18 </div>
rooms.scss
css
1.message-details { 2 height: 57vh; 3 overflow-y: scroll; 4}
scroll.js
javascript
1function scrollToEnd() { 2 const messageDetails = document.getElementById('scroll-inner'); 3 messageDetails.scrollTop = messageDetails.scrollHeight; 4}
補足情報(FW/ツールのバージョンなど)
ruby 2.6.4p104
RubyGems 3.0.3
Rails 5.2.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。