JavaScript:画面サイズが変わってもレコードを1行に収める方法

JavaScript:画面サイズが変わってもレコードを1行に収める方法

JavaScript:画面サイズが変わってもレコードを1行に収める方法

レコードをTableに記載した時、1つのカラムが長く全体を調整されてしまうときがあります。

そんな時に上手く調整する方法です。

サンプルコード

列ごとのサイズは【<colgroup>】で指定していますが、この中の『件名』に長いものがあった時、この設定を無視し自動調整がされてしまいます。

具体的には、日時や配信者名の幅が狭くなり件名に幅を取られます。

はみ出た文字を…で省略して1行レコードにする

こんなコードを入れて幅を指示すれば簡単に【省略 + … 】で1行レコードにしてくれます。
が、これだと画面サイズに関わらず300px で省略が実行されてしまいます。

レスポンシブな時代には合わないですよね。

JavaScriptで画面サイズを取得して省略サイズを可変させる

行っている事は次の通りです。

  1. JavaScriptで画面サイズを取得する ※ var wsize = $(window).innerWidth();
  2. 配置する大きさに加工してclass名を付ける ※ $(‘.conts’).width(wsize/12*6*0.4);
  3. 省略したい場所のclassに取り付ける ※ <div class=”overflow conts”>

これで画面サイズが変わっても丁度いい位置で省略してくれます。

まとめ

私は最初、JavaScriptに苦手意識がありました。
だけど意外と簡単なんですよね。

上のコードでは手動でWindowを小さくした時にはリロードしなくてはなりませんが、そんなのも感知するコード書いとけば勝手に処理してくれます。
こう言うの書くと「便利だよなぁ」と実感しますね。