2014.11.14
▼まずは、FC2ブログの管理画面から「テンプレートの設定」をクリックし、HTMLの編集でhead要素内(<head> ~ </head>の間)に以下のJavaScriptのソースを記述します。
<script type="text/javascript"><!-- var today = new Date(); function WhatsNew(year,month,day,hour) { var Time = 24; var Post = new Date(year,month-1,day,hour); if (today - Post < 3600000 * Time) { document.write('<span class="new">New!!</span>')} } --></script>
※表示する期間(時間)を変更したい場合は、4行目の「24」の数字を変更します。
例えば48時間(2日間)表示したい場合は「48」で、72時間(3日間)なら「72」とします。
▼そして、次にスタイルシート編集にも以下の1行を末尾などに追加し保存します。
.new { color:#F00; font-weight:bold; }
※上記は例として「New!!」を赤い太字で表示する場合の設定なので、お好みで編集して下さい。
▼上記のHTMLを元に「New!!」を記事タイトル末尾に表示する場合は以下のようにHTMLを編集します。
(以下ではHTMLタグの左側のスペースは省いて表示してます)
<ul> <!--recent--> <li &align> <a href="<%recent_link>" title="<%recent_title>"><%recent_title> (<%recent_month>/<%recent_day>)</a> <script type="text/javascript"> WhatsNew(<%recent_year>,<%recent_month>,<%recent_day>,<%recent_hour>) </script> </li> <!--/recent--> </ul>
※記事タイトルと「New!!」の表示がくっ付かないようにする為に、5行目末尾に「 」(半角スペースの文字コード)を追加してます。(CSSでスペースを調節する場合は削除して下さい)
※上記は例として、デフォルトの最新記事プラグイン内に記述してますが「New!!」を表示する為に追加したのは、6行目~8行目の記述なので実際には自身のプラグイン内のHTMLを確認し表示したい位置に
<script type="text/javascript">
WhatsNew(<%recent_year>,<%recent_month>,<%recent_day>,<%recent_hour>)
</script>
の3行を追加すればOKです♪(余白などはお好みで調節してねw)
<script type="text/javascript"><!-- var today = new Date(); function WhatsNew(year,month,day,hour) { var Time = 24; var Post = new Date(year,month-1,day,hour); if (today - Post < 3600000 * Time) { document.write('<span class="new">New!!</span>')} } --></script>
※1行目は、ここからJavaScriptの記述ですよ~って部分w
(HTML5では「 type="text/javascript" 」の部分を省略しても良いです)
※2行目では「today」と言う変数を宣言、today = new Date(); ←現在の日時を表すコンストラクタ
var ○○ ←の部分が変数名なので分かり易く今日と言う意味の「today」となってます。
変数名の付け方・規則については こちら をご覧下さい。
※3行目では、実行する関数を定義しています。
function ○○ ←の部分が関数名で、今回の場合「WhatsNew」と言う関数を定義しています。
関数名の付け方については、上記の変数名の付け方・規則と同じ感じです♪
また、関数名の後の「 ( 」 ~ 「 ) 」の間には引数を指定する事ができ、今回の場合何の値が代入されてるか分かり易いように「year,month,day,hour」としてます。(何年、何月、何日、何時)
この引数には、プラグインのHTMLに記述した以下の値がそれぞれ代入されます。
(<%recent_year>,<%recent_month>,<%recent_day>,<%recent_hour>)
<%recent_year>等は、FC2ブログの変数ですので詳しくは こちら をご覧下さい。
そして、その関数により実行される処理を「 { 」 ~ 「 } 」の間に記述します。
今回の場合、開始の「 { 」は3行目の末尾で、終了の「 } 」は8行目となってます。
※4行目では、2行目と同じように変数の宣言をしており、Time = 24 となってます。
要は “Time” は数字の24って事だよ~って感じです♪w
(時間の計算で使用してるので分かり易く「 Time 」と言う変数名にしました。)
※5行目では「Post」と言う変数を宣言し、記事の投稿日時を表す為の変数となります。
new Dateの「 ( 」 ~ 「 ) 」の間に「year,month-1,day,hour」と言う引数を指定しており、ここには3行目の引数の値が代入され記事の投稿日時のデータとなります。
またJavaScriptでは月を0~11で表すので2つ目の引数は「month-1」となってます。
例えば、<%recent_month>は記事の投稿月を表示するので11月の場合「11」と言う値になりますがこのままの値では、JavaScriptでは12月と計算してしまうので「-1」をして「10」の値としてます。
※6行目では、上記で指定した変数などを用いたif文による条件式となります。
また、JavaScriptでは日時の計算をミリ秒単位で行います。(1秒は1000ミリ秒)
ですので式の途中にある「 3600000 」と言う数字は、1時間を表している事になります。
1000(1秒は1000ミリ秒) × 60(1分は60秒) × 60(1時間は60分) = 3600000
と言う事で、計算式はこんな感じになります。
(today(現在の日時) - Post(記事の投稿日時) < 3600000(1時間) * Time(24))
例えば、現在の日時が「2014年11月14日18時」で、記事の投稿日時が「2014年11月13日20時」とすると22時間経過してる事になるので差は 22 × 3600000 = 79200000 となり、3600000 × 24 = 86400000 の方が数字が大きいと言う事になるので、if文による条件式は “true” を返します。
※7行目では、6行目のif文による条件式が “true” の場合の処理が行われます。
document.write()は「 ( 」 ~ 「 ) 」の間の内容を書き出します。
また、文字列を書き出す場合は「 "(ダブルクォーテーション)」で囲むのですが、書き出す文字列に 「 "(ダブルクォーテーション)」が含まれてる場合は「 '(シングルクォーテーション)」で囲みます
今回の場合だと「<span class="new">New!!</span>」が書き出され、書き出す文字列に「 "(ダブルクォーテーション)」が含まれてるので「 '(シングルクォーテーション)」で囲まれてます。
6行目のif文による条件式が “false” の場合は何も書き出されないので「New!!」が表示されない仕組みになってます。
また画像を書き出す事も可能なので、その場合は「<span class="new">New!!</span>」の部分を「<img src="画像のURL">」とすればOKです♪
※8行目の「 } 」で、3行目の関数「WhatsNew」の処理が終了します。
※9行目は、JavaScriptの記述はここまでですよ~って事です♪w
▼その方法は上記のhead要素内に記述する「JavaScript」を以下のようにアレンジすればOKです。
例として24時間以内は「新作!!」を表示、48時間以内は「準新作!!」と表示する場合の記述です。
<script type="text/javascript"><!-- var today=new Date(); function WhatsNew(year,month,day,hour) { var Time = 24; var Post = new Date(year,month-1,day,hour); if (today - Post < 3600000 * Time) { document.write('<span class="new1">新作!!</span>')} else if (today - Post < 3600000 * Time * 2) { document.write('<span class="new2">準新作!!</span>')} } --></script>
※表示する新着マークをそれぞれ違う色等に設定出来るよう「class="new1"」と「class="new2"」としてますので、それぞれスタイルシート(CSS)で設定して下さい。
※表示期間を変更する場合は4行目の「24」の数字と、8行目の「2」の数字を変更して調整して下さい。
※さらに条件を増やしたい場合は、8行目と9行目をコピペして足して行けばOKです♪
▼スタイルシート編集には以下のように記述します。(末尾等に追加でOK)
.new1 { color:#F00; font-weight:bold; } .new2 { color:#0F0; font-weight:bold; }
※上記は例として「新作!!」の部分は赤い太字で表示、「準新作!!」の部分は緑の太字で表示する場合の記述なので、お好みで編集して下さい♪
<script type="text/javascript"> WhatsNew(<%rcomment_year>,<%rcomment_month>,<%rcomment_day>,<%rcomment_hour>) </script>
※追加する場所はプラグインのHTML次第なのですが、上記の「最新記事」のプラグイン内への記述と同じ要領で表示したい場所に追加すればOKです。
※また、変数の部分を変更して「最新トラックバック」のプラグイン内に記述すれば「最新トラックバック」の一覧で新着マークを表示する事も可能です。変数について詳しくは こちら をご覧下さい♪
.blinking{ -webkit-animation:blink 2s ease-in-out infinite alternate; -moz-animation:blink 2s ease-in-out infinite alternate; -ms-animation:blink 2s ease-in-out infinite alternate; -o-animation:blink 2s ease-in-out infinite alternate; animation:blink 2s ease-in-out infinite alternate; } @-webkit-keyframes blink{ 0% {opacity:0;} 100% {opacity:1;} } @-moz-keyframes blink{ 0% {opacity:0;} 100% {opacity:1;} } @-ms-keyframes blink{ 0% {opacity:0;} 100% {opacity:1;} } @-o-keyframes blink{ 0% {opacity:0;} 100% {opacity:1;} } @keyframes blink{ 0% {opacity:0;} 100% {opacity:1;} }
※各ブラウザに対応させる為にベンダープレフィックスを付けてるので、点滅の間隔を変更する際は2行目~6行目の「2s」の部分を変更して下さい。点滅を早くする場合は「1s」など数字を減らし、逆に点滅をゆっくりにする場合は「3s」など数字を増やせばOKです。
※今回の新着マーク以外の箇所でも使う事があるかも?と思って一応別のクラス名を付けてます♪
- TrackBack -
- Comment -
- Post a Comment -
▼クリックすると配色が変更されます
このボタンの設置方法は こちら♪
2014.12.15
2014.12.09
2014.12.05
2014.12.04
2014.12.03
管理人のみ閲覧できます