/*
##########################################
文字サイズ変更スクリプト FontSizeChange.js
##########################################
小説ページに3段階の文字サイズ変更ボタンをつけます。
サイズの指定はCookieで記録され、同じフォルダ内でこのjsファイルを呼び出している
全てのページに適用されます。Cookieは指定日数(初期設定では30日間)保存されます。
ボタンはjavascriptで記述されるので、javascriptオフの環境下では表示されません。
配布元 小説HTMLの小人さん http://htmldwarf.hanameiro.net/
*/
/* -------------------使い方---------------------*/
/*
1) 小説ファイルのbody要素に onload="SizeChange();" と指定してください。
例)
2) 小説ファイルのフォントサイズを変更したい要素に id="docs" と指定してください。
(id名は下の「初期設定」で変えられます)
例)(〜本文〜)
3) 小説ファイルのボタンを置きたい場所に
と記述してください。
4) 小説ファイルとFontSizeChange.jsを同じフォルダ内にアップしてください。
※テーブルの中にテキストを入れている場合、idは一番内側のtd要素に指定してください。
*/
/* ----------------- 変数宣言 -------------------*/
var ButtonType;
var FontSize;
var Unit;
var Obj;
var LinkColor;
var SelectedColor;
var SelectedBold;
Img = new Array();
ImgOn = new Array();
SizeList = new Array();
Units = new Array('%','px','pt','em');
Text = new Array();
/* ----------------- 初期設定 -------------------*/
/* IDの指定 */
//文字サイズを変更したい要素のID
Obj = 'docs';
/* サイズの単位(0 = %、1 = px、2 = pt, 3= em) */
Unit = 0;
/* サイズの選択肢(上から順に小、中、大。指定できるのは数字のみ)*/
SizeList["S"] = 90;
SizeList["M"] = 100;
SizeList["L"] = 115;
/* ボタンのタイプ (0 = テキスト 1 = 画像)*/
ButtonType = 0;
/* テキストの表記(上から順に小、中、大)*/
Text["S"] = "[小]";
Text["M"] = "[中]";
Text["L"] = "[大]";
/* テキストの色(上は選択していないサイズ、下は選択中のサイズ)*/
TextColor = 'blue';
SelectedColor = 'red';
/* 選択中のサイズの太字表記(0 = 普通、 1 = 太字) */
SelectedBold = 0;
/* 画像ボタン(未選択)のURL(上から順に小、中、大)*/
Img["S"] = 'small.gif';
Img["M"] = 'medium.gif';
Img["L"] = 'large.gif';
/* 画像ボタン(選択中)のURL(上から順に小、中、大)*/
ImgOn["S"] = 'small_on.gif';
ImgOn["M"] = 'medium_on.gif';
ImgOn["L"] = 'large_on.gif';
/* Cookieの有効期限(日数) */
ExpireDays = 30;
/* -------------------- 実 行 ---------------------*/
ReadCookie();
Buttons();
/* -------------------- 関 数 ---------------------*/
/* ボタン書き出し */
function Buttons() {
Button("S");
Button("M");
Button("L");
}
/* 各ボタンの書き出し */
function Button(Size) {
// 画像
if (ButtonType) {
if (SizeList[Size] == FontSize) {
document.write(' ');
} else {
document.write(' ');
}
// テキスト
} else {
if (SizeList[Size] == FontSize) {
var Style;
if (SelectedBold) {
Style = 'color:' + SelectedColor + ';font-weight:bold';
} else {
Style = 'color:' + SelectedColor;
}
document.write ('' + Text[Size] + ' ');
} else {
document.write ('' + Text[Size] + ' ');
}
}
}
/* Cookie呼出 */
function ReadCookie() {
if (document.cookie) {
Cookie = document.cookie;
if (Cookie.match(/FontSize=([\d.]*)/)) {
FontSize = RegExp.$1;
}
}
}
/* フォントサイズ変更 */
function SizeChange() {
if (FontSize != null) {
document.getElementById(Obj).style.fontSize = FontSize + Units[Unit];
}
}
/* Cookie書込 */
function Write(Size) {
// 日付の計算
var toDay = new Date;
var xDay = new Date;
parseInt(ExpireDays);
xDay.setDate(toDay.getDate()+ExpireDays);
ExpireText = xDay.toGMTString();
// 書込
document.cookie = "FontSize = " + Size + ";expires=" + ExpireText;
// 再読込
location.reload();
}