TOPICS

トピックス

長文タイトルの場合にパンくずリストを右寄せさせる為のjs

webサイトにパンくずリストを設置した際、タイトルが長い場合に右側が切れてしまう場合があります。
特に横幅が狭いスマホ表示の際にありがちですね。
そんなとき、パンくずリストのタイトル部分をしっかり表示してくれていると見え方も美しく見えます。
これを実現する為に、javascriptを使って、タイトルの文字数が長いときは強制的に右寄せにして、
左側にスクロールさせる表示にする為のコードを紹介します。

HTML

まずは、基本的なパンくずリストを表示する為のHTMLから。
ulを包括するdivには、breadcrumbというIDを付与しています。

<div id="breadcrumb">
  <ul>
    <li><a href="/">TOP</a></li>
    <li><a href="/TOPICS/">TOPICS一覧</a></li>
    <li>長文タイトルの場合にパンくずを右寄せさせる為のjs/li>
  </ul>
</div>

CSS

見た目を整える為のCSSです。必要に応じて適宜変更してください。
#breadcrumb ulの
overflow-x: auto;
white-space: nowrap;
word-break: break-all;
の箇所が肝心です。

html{
  font-size: 62.5%;
  margin: 0;
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif;
}
#breadcrumb {
  padding: 5px 15px;
}
#breadcrumb ul{
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  overflow-x: auto;
  white-space: nowrap;
  word-break: break-all;
  padding-bottom: 5px;
}
#breadcrumb ul li {
  font-size: 1.2rem;
  position: relative;
  padding-right: 2.4rem;
}
#breadcrumb ul li:last-child {
  padding-right: 0;
}
#breadcrumb ul li::after{
  content: ">";
  position: absolute;
  font-size: 1.2rem;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
}
#breadcrumb ul li:last-child::after{
  content: none;
}
#breadcrumb {
  padding: 5px 15px;
}
#breadcrumb ul{
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  overflow-x: auto;
  white-space: nowrap;
  word-break: break-all;
  padding-bottom: 5px;
}
#breadcrumb ul li {
  font-size: 1.2rem;
  position: relative;
  padding-right: 2.4rem;
}
#breadcrumb ul li:last-child {
  padding-right: 0;
}
#breadcrumb ul li::after{
  content: ">";
  position: absolute;
  font-size: 1.2rem;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
}
#breadcrumb ul li:last-child::after{
  content: none;
}
/******************************************** min-width:960px **************************************************/
@media screen and (min-width:960px){
#breadcrumb {
  padding: 10px 30px;
}
#breadcrumb ul li {
  font-size: 1.4rem;
  padding-right: 2.8rem;
}
#breadcrumb ul li::after{
  font-size: 1.4rem;
  right: 0.7rem;
}
}

javascript

肝心なjavascriptになります。
下記jqueryをheadに記述。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

下記javascriptをfooterの</body>の直前や共通jsファイルに記述。

<script>
$(document).ready(function() {
  var list = $('#breadcrumb ul').innerWidth();
  var breadcrumb = $('#breadcrumb').innerWidth();
  var scrollLeft = list - breadcrumb;
$('#breadcrumb ul').scrollLeft(list - scrollLeft);
});
</script>

CONTACT

お問い合わせ・ご相談・お見積もりのご依頼など、
下記フォームからお気軽にお問い合わせください。

お問い合わせ