###やりたいこと
toppage_html.erbのテーブルのtdの横幅を変えたい。
テーブルにこだわりはありませんので他の方法でも構いませんので投稿フォームで入力された物をeachループがかかりそれを横自動スクロールで横一行で文字を表示できるようにお願いします。
###試したこと
シンプルにtdにwidthを持たせた。
td同士を横に結合させて大きな箱にしてサイズを変えようとした。
###環境
ruby on rails 5
bootstrap
###toppage_html.erb
<div class="second"> <div id="scroll-box"> <table class="table table-hover"> <tbody> <tr> <% @books_scroll.each do |book| %> <td class="scrolls-box hako text-center">Profile image</td> <td class="scrolls-box booki text-center"> <%= attachment_image_tag book.user, :profile_image, :fill, 50, 50, fallback: "default.jpg", class: "img-circle" %></td> <td class="scrolls-box hako text-center">Book Cover</td> <td class="scrolls-box booki text-center"><%= attachment_image_tag book, :image, :fill, 50, 50, fallback: "default.jpg"%></td> <td class="scrolls-box hako text-center">Date</td> <td class="scrolls-box text-center"><%=book.date %></td> <td class="scrolls-box hako text-center">Price</td> <td class="scrolls-box text-center"><%=book.price %></td> <td class="scrolls-box hako text-center">Category</td> <td class="scrolls-box text-center"><%=book.category %></td> <td class="scrolls-box hako text-center">Title</td> <td class="scrolls-box hako text-center">Opinion</td> <td class="scrolls-box text-center"><%=book.opinion %></td> <% end %> </tr> </tbody> </table>
###book.show.html.erb
<%= form_for(@book) do |f| %> <% if @book.errors.any? %> <div id="error_explanation" class="alert alert-danger"> <ul> <% @book.errors.full_messages.each do |message| %> <li> <%= message %> </li> <% end %> </ul> </div> <% end %> <div class="field row"> <label>BOOK COVER</label> <%= f.attachment_field :image %> </div> <div class="field row"> <label>投稿日</label> <%= f.text_field :date, id: "datepicker" ,class: "col-sm-12" %> </div> <div class="field row"> <label>Price</label> <%= f.number_field :price, class: "col-sm-12"%> </div> <div class="field row"> <label>Category</label> <%= f.select :category, [["小説","小説"],["漫画","漫画"],["自伝","自伝"], ["雑誌","雑誌"], ["サスペンス","サスペンス"],],class: "col-sm-12"%> </div> <div class="field row"> <label>Title</label> <%= f.text_field :title, class: " col-sm-12"%> </div> <div class="field row"> <label>Opinion</label> <%= f.text_area :opinion, class: " col-sm-12" %> </div> <div class="actions row"> <%= f.submit "Create Book", class:"btn btn btn-primary col-sm-12" %> </div> <% end %>
###assets/javascripts/scroll.js
window.onload = function () { autoScroll(); } // .scrollX 水平方向にスクロールされているピクセルを変えす var $scrollX = -10; function autoScroll() { var $scroller = document.getElementById("scroll-box"); $scroller.scrollLeft = ++$scrollX; // scrollWidth paddingを含んだ画面上に表示されていないコンテンツを含む幅 // clientWidth paddingを含んだ幅 if( $scrollX < $scroller.scrollWidth - $scroller.clientWidth ){ setTimeout( "autoScroll()", 6 ); }else{ $scrollX = 0; $scroller.scrollLeft = 0; setTimeout( "autoScroll()", 6 ); }}
###toppageのcss
.bookmessage{ color:#fff; } .main{ padding-top:72px+400px; background-image: url("sample-post9.jpg"); background-size:cover; width:100%; height:1000px; } #scroll-box { height:70px; overflow:hidden; overflow-y:scroll; width:100%; } td{ border:1px solid #ccc; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。