2024.05.06
OSS
モバイルフレンドリーなイメージビューワー SmartPhoto.js の利用方法
カレンダーの中の祝日や休日の要素だけ見た目を他の日付と変更したいと思ったことはありませんか? また、(月)、(木)といったの曜日のラベルを祝日の場合は (祝)にしたいと思ったことはありませんか?今回は、日付を設定すると、要素に指定した日付と、設定した日付が一致した場合、class を追加することができる他、曜日のラベルを(祝)に変更できるライブラリをリリースしました。
この記事ではそのライブラリの使い方をご紹介します。
See the Pen Assign Holiday Demo by appleple (@appleple) on CodePen.
下記の画像は、AssignHolidayを使用しなかった時です。2021年9月は20日と23日は祝日ですが、このままでは祝日であるということが分かりづらいです。そんな時に、デモのように AssignHoliday を使用すると、祝日の要素にclassを付与することができます(デモではわかりやすいように緑色の背景色をつけています)。また、月や木といった曜日のラベルが 祝 というラベルに変わっていたり、タイトルも表示されています。
cssの読み込みは任意です。ツールチップを使用する際に必要になります。
<link rel="stylesheet" href="https://unpkg.com/assign-holiday@latest/dist/assign-holiday.css">
<script src="https://unpkg.com/assign-holiday@latest/dist/assign-holiday.js"></script>
npm install assign-holiday
yarn add assign-holiday
<link rel="stylesheet" href="https://unpkg.com/assign-holiday@latest/dist/assign-holiday.css">
<script src="https://unpkg.com/assign-holiday@latest/dist/jquery-assign-holiday.js"></script>
<table class="js-assign-holiday">
<tbody>
<tr data-assign-holiday-date="2021-12-01">
<th>1<span>(水)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<tr data-assign-holiday-date="2021-12-02">
<th>2<span>(木)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<tr data-assign-holiday-date="2021-12-03">
<th>2<span>(金)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<!-- 省略 -->
</tbody>
</table>
const assignHoliday = new AssignHoliday('.js-assign-holiday');
assignHoliday.run({
'2021-12-06': '定休日',
'2021-12-13': '定休日',
'2021-12-20': '定休日',
'2021-12-24': {
title: 'クリスマスイブのため臨時休業',
className: 'is-christmas-eve',
},
'2021-12-27': '定休日',
})
<table class="js-assign-holiday">
<tbody>
<tr data-assign-holiday-date="2021-12-01">
<th>1<span>(水)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<tr data-assign-holiday-date="2021-12-02">
<th>2<span>(木)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<tr data-assign-holiday-date="2021-12-03">
<th>2<span>(金)</span></th>
<td class="assign-holiday-title"></td>
</tr>
<!-- 省略 -->
<tr data-assign-holiday-date="2021-12-06" class="assign-holiday">
<th>2<span>(月)</span></th>
<td class="assign-holiday-title">定休日</td>
</tr>
<!-- 省略 -->
<tr data-assign-holiday-date="2021-12-13" class="assign-holiday">
<th>2<span>(月)</span></th>
<td class="assign-holiday-title">定休日</td>
</tr>
<!-- 省略 -->
<tr data-assign-holiday-date="2021-12-20" class="assign-holiday">
<th>2<span>(月)</span></th>
<td class="assign-holiday-title">定休日</td>
</tr>
<!-- 省略 -->
<tr data-assign-holiday-date="2021-12-24" class="is-christmas-eve">
<th>2<span>(金)</span></th>
<td class="assign-holiday-title">クリスマスイブのため臨時休業</td>
</tr>
<!-- 省略 -->
<tr data-assign-holiday-date="2021-12-27" class="assign-holiday">
<th>2<span>(月)</span></th>
<td class="assign-holiday-title">定休日</td>
</tr>
<!-- 省略 -->
</tbody>
</table>
祝日を表示させる場合、(月)などの曜日のラベルを(祝)にしたいということがあるかと思います。そういった場合は下記のようにラベルを表示している要素に assign-holiday-week-label
を追加してください。
assign-holiday-week-label
をclass属性に設定した要素内の文字に、 weekLabels
オプションの配列で設定した文字列と同じ文字があれば、 holidayLabel
で設定した文字に置換するという仕様になっています。
<tr data-assign-holiday-date="2021-12-20" class="assign-holiday">
<th>2<span class="assign-holiday-week-label">(月)</span></th>
<td class="assign-holiday-title"></td>
</tr>
fetch('https://holidays-jp.github.io/api/v1/date.json')
.then(res => res.json())
.then((data) => {
new AssignHoliday('.js-assign-holiday', {
holidayLabel: '祝', // デフォルトの設定だと"Hol."になっているので日本語表記に変更します。
weekLabels: ['月', '火', '水', '木', '金', '土', '日'], // デフォルトだと英語表記なので、日本語表記に変更します。
}).run(data);
});
$(function () {
const assignHoliday = $('.js-assign-holiday').assignHoliday();
assignHoliday.run({
'2021-12-06': '定休日',
'2021-12-13': '定休日',
'2021-12-20': '定休日',
'2021-12-24': {
title: 'クリスマスイブのため臨時休業',
className: 'is-christmas-eve',
},
'2021-12-27': '定休日',
})
});
$.get('https://holidays-jp.github.io/api/v1/date.json')
.then((data) => {
$('.js-assign-holiday').assignHoliday({
holidayLabel: '祝', // デフォルトの設定だと"Hol."になっているので日本語表記に変更します。
weekLabels: ['月', '火', '水', '木', '金', '土', '日'], // デフォルトだと英語表記なので、日本語表記に変更します。
}).run(data);
})
使い方のところでも、少し紹介しましたが、AssignHolidayにはオプションが用意されており、第二引数(jQueryプラグインとして使用する場合は第一引数)にオプションのオブジェクトを設定することができます。
ここでは、設定できるオプションを紹介します。
名前 | デフォルト値 | 説明 |
---|---|---|
holidayClass | 'assign-holiday' | 休日の要素に追加されるクラス名です。 |
dateAttribute | 'data-assign-holiday-date' | 日付を yyyy-MM-dd の形式で設定する属性です。 |
holidayTitleClass | 'assign-holiday-title' | タイトルを表示させる要素のクラス名です。 |
holidayTitleTag | '' | タイトルを表示させる場合、タイトルのテキストを囲むHTMLタグを設定できます。 |
holidayTitleAppendClass | '' | タイトルのテキストを囲むHTMLタグを設定した場合、そのタグに追加するクラス名を設定できます。 |
today | false | 今日の要素にクラスを追加するかどうかを設定できます。 |
todayClass | 'assign-holiday-today' | 今日の要素にクラスを追加する場合、そのクラス名を設定できます。 |
holidayLabel | 'Hol.' | 休日に曜日のラベルを追加する場合、そのラベルを文字列で設定できます。 |
holidayLabelPosition | 'replace' | 設定された曜日のラベルの中に、休日のラベルを挿入する位置です。'replace'、'before'、'after'が選択できます。 |
weekLabelClass | 'assign-holiday-week-label' | holidayLabelで設定したラベルを置換または挿入される要素に追加するクラス名です。 |
weekLabels | ['Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.', 'Sun.'] | holidayLabelで設定したラベルが置換または前後に挿入される文字列を設定できます。 |
holidayTooltipClass | 'assign-holiday-tooltip' | ツールチップが追加される要素のクラス名です。 |
holidayTooltipTextClass | 'assign-holiday-tooltip-text' | ツールチップが追加される場合、ツールチップのテキストの要素に追加されるクラス名です。 |
ダウンロードはこちらから行えます。
ダウンロード