Jqueryを使ったタブ
Jqueryをつかったタブは下記の様にする
参考:http://5am.jp/jquery/jquery_ui_tabs/
<head>
<!-- jQuery -->
<script type="text/javascript" src="/jquery-1.####.min.js"></script>
<!-- ui tabs.js -->
<script type="text/javascript" src="/ui.core.js"></script>
<script type="text/javascript" src="/ui.tabs.js"></script>
<link href="/ui.tabs.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(function() {
$('#ui-tab > ul').tabs({ fx: { opacity: 'toggle', duration: 'normal' } });
});
</script>
</head>
<div id="ui-tab">
<ul>
<li><a href="#fragment-1"><span>タブ1</span></a></li>
<li><a href="#fragment-2"><span>タブ2</span></a></li>
<li><a href="#fragment-3"><span>タブ3</span></a></li>
</ul>
<div id="fragment-1">
<p>タブ1の内容</p>
</div>
<div id="fragment-2">
<p>タブ2の内容</p>
</div>
<div id="fragment-3">
<p>タブ3の内容</p>
</div>
</div>
jquery で要素をカウント
<!-- エラー重複処理 -->
<script type="text/javascript">
// <![CDATA[
//郵便番号
$(function(){
//"div.categoryの要素毎に処理する
$(".errorZip").each(function () {
//"div.categoryの要素内のliの数をカウント
var num = $(this).find('p').length;
//alert (num);
//"div.category内のul.catlist liが0件だったら
if(num >= 2){
$('.errorZip00').css('display','block');
$('.errorZip01').css('display','none');
$('.errorZip02').css('display','none');
}
});
});
// ]]>
</script>
jQueryでテキストの初期値をフォーカス時に消す方法
jQueryでテキストの初期値をフォーカス時に消すには、
下記タグで実現できる
<ul> <li><input type="text" value="ユーザー名" /></li> <li><input type="text" value="メールアドレス" /></li> </ul>
input {
color: #ccc;
}
input .textFocus {
color: #333333 !important;
}
jQuery(document).ready(function(){
// textBox は テキストボックス全てを指定。
var textBox = jQuery("input:text");
// 条件は テキストボックスにフォーカスされたら。
textBox.focus(function(){
// class名 "textFocus" を追加。(文字色を濃くする)
jQuery(this).addClass("textFocus");
// if条件は HTMLで設定した初期値(value)のままかどうか
if(this.value == this.defaultValue){
// trueなら テキストボックスを 空 にする
jQuery(this).val('');
}
// 逆に テキストボックスからフォーカスが失われたとき。
}).blur(function(){
// if条件は テキストボックスの数値が 空(0文字)のとき
if(jQuery(this).val() == ''){
// テキストボックスの中身を 元の初期値(value)にする
// classも外す(文字色を元の薄い色に戻す)
jQuery(this).val(this.defaultValue).removeClass("textFocus");
}
});
});
jQueryでプラグインなしでモーダルウィンドウを実装
表示するコンテンツを増やす場合にはコピー&ペーストでwd2,wd3…と任意の数にしてください。
■jQuery
$(function(){
$('.btns').click(function(){
wn = '.' + $(this).attr('data-tgt');
var mW = $(wn).find('.modalBody').innerWidth() / 2;
var mH = $(wn).find('.modalBody').innerHeight() / 2;
$(wn).find('.modalBody').css({'margin-left':-mW,'margin-top':-mH});
$(wn).fadeIn(500);
});
$('.close,.modalBK').click(function(){
$(wn).fadeOut(500);
});
});
■HTML
<div class="modal wd1"> <div class="modalBody"> <p class="close">×close</p> <p>…..</p> </div> <div class="modalBK"></div> </div> <div class="modal wd2"> <div class="modalBody"> <p class="close">×close</p> <p>…..</p> </div> <div class="modalBK"></div> </div> <div class="modal wd3"> <div class="modalBody"> <p class="close">×close</p> <p>…..</p> </div> <div class="modalBK"></div> </div> <p data-tgt="wd1" class="btns">1</p> <p data-tgt="wd2" class="btns">2</p> <p data-tgt="wd3" class="btns">3</p>
■css
.modal{display:none;}
.modalBody{position: fixed; z-index:1000; background: #000; width:690px; left:50%; top:50%; height: 400px}
.modalBK{position: fixed; z-index:999; height:100%; width:100%;background:#000; opacity: 0.9;filter: alpha(opacity=90);-moz-opacity:0.90;}
.btns{font-size: 80px; width:150px; background:#111; height: 150px; line-height:150px; text-align:center; font-family: arial; color: #fff; float: left; margin:10px; cursor: pointer}
.close{cursor: pointer;}
.modal{width:690px; color: #eee;}
.modal p{font-size:12px; text-align:justify;}
.modal h1{font-weight:bold; font-size: 30px;}
.modalBody{padding: 10px;}
jQuery でスムーズなページ内リンク
jQuery でスムーズなページ内リンクは、
jqueryを読み込んだ上、
下記javascriptを記述
<script type="text/javascript">
$(function(){
$('a[href^=#]').click(function(){
var speed = 500;
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
var body = 'body';
if (navigator.userAgent.match(/MSIE/)){
body = 'html';
}
$(body).animate({scrollTop:position}, speed, 'swing');
return false;
});
});
</script>
jqueryでアコーディオン
下記がとても参考になる
参考ページ
■html部分
<div>
<h3 class="accordion_head">アコーディオンのトリガー部分</h3>
<p>アコーディオンする部分。</p>
</div>
■スクリプト部分
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.accordion_head').click(function() {
$(this).next().slideToggle();
}).next().hide();
});
</script>
■詳細
まずページを表示させるとscript部分6行目の.next().hide();が実行されます。
「トリガー(.accordion_head)の次の要素(next)を隠す(hide)」という命令ですね。
これでアコーディオンしたい部分が隠されて表示されるわけです。
次にトリガークリックで実行される部分。5行目の$(this).next().slideToggle();
このとき$(this)にはクリックしたトリガーが入っています。
「トリガー(.accordion_head)の次の要素(next)をスライド(slideToggle)する」ってことですね。
こう書いておくことで同じページに何個もアコーディオンがあっても、クリックしたトリガーだけ実行されます。
slideToggleなのでクリックで表示非表示を交互に実行します。
slideToggle()の中に’slow’(遅い)、’nomal’(普通(指定なしと同じ))、’fast’(早い)を入れるとスライドスピードも変えられます。
超シンプルなコードなので色々カスタマイズできそうですね。
(classを足して開いているアコーディオンだけ色変えたりとか、一個表示してるときは他のアコーディオンは隠すとか。。。)
■一括開閉にチャレンジ!
$('.accordion_all_head').click(function() {
$('.accordion_head').next().slideToggle();
});
■一番最初だけ開いた状態にチャレンジ!
$('.accordion_head:first').next().show();
■つのアコーディオンを開くと他は閉まるにチャレンジ!
$(document).ready(function(){
$('.accordion_head').click(function() {
$('.accordion_head').next().slideUp(); //←ここ追記
$(this).next().slideToggle();
}).next().hide();
});
■開いているアコーディオンの色を変えるにチャレンジ!
$(document).ready(function(){
$('.accordion_head').click(function() {
//ここから
if($(this).is(".selected")){
$(this).removeClass("selected");
}else {
$(this).addClass("selected");
}
//←ここまで追記
$(this).next().slideToggle();
}).next().hide();
});
.selected {
background:選択中の色;
}
.selected + * {
background:選択中の色;
}
jqueryのスタイリッシュなカウントダウンタイマー”jquery-countdown”
jqueryの見た目がきれいなカウントダウンです。
〔必要なjavascript〕
<script src="/js/jquery-1.6.4.min.js" type="text/javascript" charset="utf-8"></script><script src="js/jquery.countdown.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">
$(function(){
$('#counter').countdown({
image: '/images/digits.png',
startTime: '01:12:12:00'
});
});
</script>
〔必要なcss〕
<style type="text/css">
br { clear: both; }
.cntSeparator {
font-size: 54px;
margin: 10px 7px;
color: #000;
}
.desc { margin: 7px 3px; }
.desc div {
float: left;
font-family: Arial;
width: 70px;
margin-right: 65px;
font-size: 13px;
font-weight: bold;
color: #000;
}
</style>
〔必要なhtml〕
</p> <div id="counter"> </div> <div class="desc"> <div>Días</div> <div>Horas</div> <div>Minutos</div> <div>Segundos</div> </div> <p>
jQuery の Cycle で、フェードイン・フェードアウト切替のスライドショー
ホームページの案件で
「画像をFlashを使って切り替えて表示させたい。」
という要望が結構多い。
もちろん、Flashを使って画像をフェードイン&フェードアウトさせても良いのだが、
なんだFlashのソフトを立ち上げて、画像を読み込んで・・・
など、作成するのにある程度の時間を要するし、メンテナンスなんかの時も大変。
そこで、jQueryを使って画像を簡単にフェードイン&フェードアウトして切り替える方法をメモしておきます。
〔サンプル例〕
5つの画像を、フェードイン・フェードアウトのアニメーションで、順番に表示する。
1つの画像の表示時間は、2秒。
フェードイン・フェードアウトのアニメーション動作時間は、3秒。
1.それぞれのjavascriptを読み込む
<script type="text/javascript" src="jquery.js"></script><script type="text/javascript" src="jquery.cycle.all.js"></script>
2.javascriptのコードを記載
<script>
<!--
jQuery( function() {
jQuery( '#jquery-cycle' ) .cycle( {
fx: 'fade',
speed: 3000,
timeout: 2000
} );
} );
// -->
</script>
【fx】
スライドが切り替わるアニメーションの種類を指定するオプション。 フェードイン・フェードアウトのアニメーションにするには、「fade」を指定。
【speed】
スライドが切り替わるアニメーション動作速度を指定するオプション。 3000ミリ秒を指定した。
【timeout】
スライド1つ1つの表示時間を指定するオプション。 2000ミリ秒を指定した。
3.htmlに画像を記載
</p> <div id="jquery-cycle"><img src="1.jpg" /> <img src="2.jpg" /> <img src="3.jpg" /> <img src="4.jpg" /> <img src="5.jpg" /></div> <p>
以上。