文字の大きさを変更する
文字の大きさをjQueryを使って変更するスクリプト。
cookieを利用して次回訪問時にも同じ設定を読み込ませる。
先ずjquery.cookie.jsをダウンロードして、jQueryと共にheader内で読み込む。
header内
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="js/iquery-1.9.1.min.js"><\/script>')</script> <script src="js/jquery.cookie.js"></script>
HTML
<ul id="fontSize"> <li><img class="changeBtn" src="img/btn_01.gif" alt="小"></li> <li><img class="changeBtn" src="img/btn_02.gif" alt="中"></li> <li><img class="changeBtn" src="img/btn_03.gif" alt="大"></li> </ul>
js
/* フォントサイズ変更 */ $(function(){ fontsizeChange();}); function fontsizeChange(){ var changeArea = $('body'); //フォントサイズ変更エリア var btnArea = $("#fontSize"); //フォントサイズ変更ボタンエリア var changeBtn = btnArea.find(".changeBtn"); //フォントサイズ変更ボタン var fontSize = [100,116,131]; //フォントサイズ(HTMLと同じ並び順、幾つでもOK、単位は%) var ovStr = "_on"; //ロールオーバー画像ファイル末尾追加文字列(ロールオーバー画像を使用しない場合は値を空にする) var activeClass = "active"; //フォントサイズ変更ボタンのアクティブ時のクラス名 var defaultSize = 0; //初期フォントサイズ設定(HTMLと同じ並び順で0から数値を設定) var cookieExpires = 7; //クッキー保存期間 var sizeLen = fontSize.length; var useImg = ovStr!="" && changeBtn.is("[src]"); //現在クッキー確認関数 function nowCookie(){ return $.cookie("fontsize"); } //画像切替関数 function imgChange(elm1,elm2,str1,str2){ elm1.attr("src",elm2.attr("src").replace(new RegExp("^(\.+)"+str1+"(\\.[a-z]+)$"),"$1"+str2+"$2")); } //マウスアウト関数 function mouseOut(){ for(var i=0; i<sizeLen; i++){ if(nowCookie()!=fontSize[i]){ imgChange(changeBtn.eq(i),changeBtn.eq(i),ovStr,""); }}} //フォントサイズ設定関数 function sizeChange(){ changeArea.css({fontSize:nowCookie()+"%"});} //クッキー設定関数 function cookieSet(index){ $.cookie("fontsize",fontSize[index],{path:'/',expires:cookieExpires});} //初期表示 if(nowCookie()){ for(var i=0; i<sizeLen; i++){ if(nowCookie()==fontSize[i]){ sizeChange(); var elm = changeBtn.eq(i); if(useImg){ imgChange(elm,elm,"",ovStr); } elm.addClass(activeClass); break;}}} else { cookieSet(defaultSize); sizeChange(); var elm = changeBtn.eq(defaultSize); if(useImg){ imgChange(elm,elm,"",ovStr); imgChange($("<img>"),elm,"",ovStr); } elm.addClass(activeClass); } //ホバーイベント if(useImg){ changeBtn.each(function(i){ var self = $(this); self.hover( function(){ if(nowCookie()!=fontSize[i]){ imgChange(self,self,"",ovStr); }}, function(){ mouseOut(); });});} //クリックイベント changeBtn.click(function(){ var index = changeBtn.index(this); var self = $(this); cookieSet(index); sizeChange(); if(useImg){ mouseOut(); } if(!self.hasClass(activeClass)){ changeBtn.not(this).removeClass(activeClass); self.addClass(activeClass); }});} /* ここまでフォントサイズ変更 */