はじめに
Cocoonの通知エリアに表示されるメッセージを、横スクロール(流れる文字)で表示させたいケースがあります。
以下の記事では、notice.phpを編集して通知メッセージを <span>タグで囲み、CSSで流れるようにする方法を紹介しています。
その後、Cocoon本体のアップデートにより<span>タグが付加されました。
そのため、CSSのみでスタイルを変更することが可能です。
この記事では、この方法について説明します。
完成イメージ
本ページに完成イメージを反映させます。
実装手順
以下の手順で実装します。
- ラベルCocoon設定
表1に示す項目を設定します。
Cocoon設定 設定 大項目 項目 設定値 通知 通知設定 通知エリアの表示 オン 通知メッセージ メッセージを入力 - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.notice-area { overflow: hidden; span { animation: marquee 20s linear infinite; display: inline-block; padding-left: 100%; white-space: nowrap; } } @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
参考:CSSのみで縦にスクロールする方法
以下をCSSのみで実現します。
完成イメージ
実装手順
- ラベルHTMLを追加
以下のコードを「カスタムHTML」ウィジェットに追加します。
<ul class="ticker"> <div class="ticker-wrap"> <li><a href="#"><span>1つ目のお知らせ。</span></a></li> <li><a href="#"><span>2つ目のお知らせ。</span></a></li> <li><a href="#"><span>3つ目のお知らせ。</span></a></li> <li><a href="#"><span>1つ目のお知らせ。</span></a></li> <!-- クローン --> </div> </ul> - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.body { .ticker { background-color: #333; height: 2.5em; overflow: hidden; position: relative; .ticker-wrap { align-items: center; animation: scrollTicker 10.5s linear infinite; display: flex; flex-direction: column; } li { height: 2.5em; line-height: 2.5em; list-style: none; margin: 0; white-space: nowrap; } span { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } } @keyframes scrollTicker { 0% { transform: translateY(0); } 28.57% { transform: translateY(0); } /* 3秒停止 */ 33.33% { transform: translateY(-2.5em); } /* 0.5秒移動 */ 61.90% { transform: translateY(-2.5em); } /* 3秒停止 */ 66.66% { transform: translateY(-5em); } /* 0.5秒移動 */ 95.23% { transform: translateY(-5em); } /* 3秒停止 */ 100% { transform: translateY(-7.5em); } /* 0.5秒移動 */ }
さいごに
今回紹介した方法を使えば、CSSのみで通知エリアのメッセージをスムーズにスクロール表示できます。
特別なJavaScriptやプラグインは不要で、簡単に実装可能です。




