ASP.NET jQueryレシピ21(jQuery各種アニメーション基礎効果テクニック集合)

63020 ワード

jQueryは、ページアニメーションの効果を実現するツール関数を多く提供し、これらの関数を使用することで、ユーザー体験をよりよく向上させることができます.
まず、jQueryが提供する基本的なアニメーション関数を見てみましょう.
♦ animate(properties,[duration],[easing],[callback]):CSSプロパティ設定のカスタムアニメーションを実行
properties:CSSプロパティのセットで、アニメーションはこのプロパティのセットに向かって移動します.
duration:アニメーションがどのくらい実行されるかを決定する文字列または数値.
easing:使用する消去効果の名前(プラグインのサポートが必要).デフォルトのjQueryは「linear」と「swing」を提供します.
callback:アニメーションの完了時に実行される関数.
♦ fadeIn([duration],[callback]):一致する要素をフェードアウトで表示します.
♦ fadeOut([duration],[callback]):一致する要素をフェードアウトで表示します.
♦ slideUp([duration],[callback]):スライドアニメーションで一致する要素を非表示にします.
♦ slideDown([duration],[callback]):スライドアニメーションで一致する要素を表示します.
♦ slideToggle([duration],[callback]):一致する要素をスライドアニメーションで表示または非表示にします.
♦ jQuery.fx.off:このプロパティがtrueに設定されている場合、呼び出されると、すべてのアニメーションメソッドは、効果を表示するのではなく、要素を最終状態に設定します.これは、いくつかの理由で満足できる可能性があります.
jQueryは低リソースデバイスで使用されています.
アニメーションを使用すると、ユーザーにアクセス性の問題が発生します.
アニメーションは、このアトリビュートをfalseに設定することで再開できます.
♦ stop([clearQueue],[jumpToEnd]):エレメントの現在実行中のアニメーションのマッチングを停止します.
clearQueueは、キューアニメーションをキャンセルするかどうかを示すブール値です.デフォルトはfalseです.
jumpToEndブール値は、現在のアニメーションがすぐに完了するかどうかを示します.デフォルトfalse.
以下、これらの関数を介してASP.NETでは、基本的なアニメーション効果を実現します.
•テキスト拡大のアニメーション効果を実現
ページコード:
 <form id="form1" runat="server">
<div align="center">

<fieldset id="content" style="width: 500px; height: 300px;">
<asp:Label ID="lblContent" CssClass="enlarge" runat="server"> , , 。 。</asp:Label>
</fieldset>
</div>
</form>

スクリプトコード:
    <script type="text/javascript">
$(
function () {
var oldSize = parseInt($(".enlarge").css("fontSize"));
var newSize = oldSize * 3;
$(
"#content").hover(function () {
$(
".enlarge").css("cursor", "pointer");
$(
".enlarge").animate({ fontSize: newSize }, 300);
},
function () {
$(
".enlarge").animate({ fontSize: oldSize }, 300);
});
});
</script>
<style type="text/css">
.enlarge
{
font-size
: 12.5px;
font-family
: Arial, Sans-Serif;
}
</style>

•画像のフェードアウト効果を実現
ページコード:
    <form id="form1" runat="server">
<div align="center">
<fieldset id="content" style="width: 480px; height: 370px;">
<asp:Image ID="img1" ImageUrl="~/images/1.jpg" runat="server" />
</fieldset>
</div>
</form>

スクリプトコード:
    <script type="text/javascript">
$(
function () {
$(
"#content").hover(function () {
$(
"#img1").css("cursor", "pointer");
$(
"#img1").fadeOut(1000);
},
function () {
$(
"#img1").fadeIn(1000);
});
});
</script>
<style type="text/css">
#img1
{
width
: 438px;
height
: 336px;
}
</style>

•ページ要素を上下にスライドさせるアニメーション効果を実現
ページコード:
    <form id="form1" runat="server">
<div align="center">
<fieldset style="width: 400px; height: 150px;">
<asp:Button ID="btnSlide" runat="server" Text=" " />
<br />
<br />
<asp:Panel ID="plSlide" runat="server" CssClass="slide">
^_^</asp:Panel>
</fieldset>
</div>
</form>

スクリプトコード:
    <script type="text/javascript">
$(
function () {
$(
"#btnSlide").click(function (e) {
e.preventDefault();

/*if ($("#plSlide").is(":hidden")) {
$("#plSlide").slideDown(600);
}
else {
$("#plSlide").slideUp(600);
}
*/

//
$("#plSlide").slideToggle(600);
});
});
</script>
<style type="text/css">
.slide
{
font-size
: 12px;
font-family
: Arial, Sans-Serif;
display
: none;
background-color
: #9999FF;
height
: 100px;
}
</style>

•現在のアニメーションキューのアニメーション効果を抑制する方法
ページコード:
<form id="form1" runat="server">
<div align="center">
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td class="menuitem">
1
</td>
<td class="menuitem">
2
</td>
<td class="menuitem">
3
</td>
<td class="menuitem">
4
</td>
</tr>
</table>
</div>
</form>

スクリプトコード:
 <script type="text/javascript">
$(
function () {
$(
".menuitem").hover(function () {
$(
this).animate({ opacity: 0.5 }, "slow");
},
function () {
// stop()
//$(this).animate({ opacity: 1.0 }, "slow");
// stop() ,
$(this).stop().animate({ opacity: 1.0 }, "slow");
});
});
</script>
<script type="text/javascript">
</script>
<style type="text/css">
.menuitem
{
background-color
: Gray;
font-weight
: bold;
color
: White;
text-align
: center;
width
: 100px;
height
: 50px;
cursor
: pointer;
}
</style>

•要素の複数のスタイルが変更されたアニメーション効果を実現
ページコード:
<form id="form1" runat="server">
<div align="center">
<fieldset style="width: 550px; height: 370px;">
<asp:Button ID="btnAnimate" runat="server" Text=" " /><br />
<br />
<asp:Panel ID="plAnimate" runat="server" CssClass="contentArea">
Story, Story 。</asp:Panel>
</fieldset>
</div>
</form>

スクリプトコード:
 <script type="text/javascript">
$(
function () {
$(
"#btnAnimate").click(function (e) {
e.preventDefault();
$(
"#plAnimate").animate({ width: "500px",
height:
"280px",
opacity:
0.5,
fontSize:
"36px",
borderWidth:
"16px"
},
"slow");
});
});
</script>
<script type="text/javascript">
</script>
<style type="text/css">
.contentArea
{
font-size
: 12px;
font-family
: Arial, Sans-Serif;
width
: 200px;
height
: 100px;
background-color
: #9999FF;
border
: solid;
}
</style>

•ページ要素の連続動作をアニメート
ページコード:
 <form id="form1" runat="server">
<div align="center">
<fieldset style="width: 550px; height: 250px">
<asp:Button ID="btnAnimate" runat="server" Text=" " />
<br />
<br />
<asp:Panel ID="plAnimate" runat="server" CssClass="contentArea">
</asp:Panel>
</fieldset>
</div>
</form>

スクリプトコード:
<script type="text/javascript">
$(
function () {
/*
1. 200px, 0.8, 2000ms
2. 100px, 0.5, 1700ms
3. 400px, 0.2, 1200ms
4. 200px, 1, 700ms
*/
$(
function () {
$(
"#btnAnimate").click(function (e) {
e.preventDefault();
// += -=
$("#plAnimate").animate({ left: "+=200px", opacity: 0.8 }, 2000)
.animate({ top:
"-=100px", opacity: 0.5 }, 1700)
.animate({ left:
"-=400px", opacity: 0.2 }, 1200)
.animate({ top:
"+=200px", opacity: 1 }, 700);
});
});
});
</script>
<style type="text/css">
.contentArea
{
width
: 60px;
height
: 60px;
border
: solid;
background-color
: #CCCCCC;
position
: relative;
}
</style>

•二次メニュー表示のアニメーション効果を実現
ページコード:
 <form id="form1" runat="server">
<div>
<div class="menu_head" id="menu1">
1</div>
<div class="menu_sub">
11<br />
12</div>
<div class="menu_head">
2</div>
<div class="menu_sub">
21<br />
22</div>
<div class="menu_head">
3</div>
<div class="menu_sub">
31<br />
32</div>
<div class="menu_head">
4</div>
<div class="menu_sub">
41<br />
42</div>
</div>
</form>

スクリプトコード:
<script type="text/javascript">
$(
function () {
$(
".menu_head").click(function () {
if (parseFloat($(this).css("opacity")) == 1) {
$(
this).animate({ opacity: 0.5, fontSize: "18px" }, "slow");
}
else {
$(
this).animate({ opacity: 1, fontSize: "15px" }, "slow");
}
$(
this).next(".menu_sub").slideToggle("slow");
});
});
</script>
<style type="text/css">
.menu_head
{
width
: 150px;
height
: 30px;
background-color
: #cccccc;
cursor
: pointer;
font-size
: 15px;
}

.menu_sub
{
width
: 150px;
height
: 50px;
background-color
: #9999ff;
display
: none;
}
</style>

以上の例の学習を通して、後でjQueryでアニメーション効果を操作する時、あなたに一定の助けがあることを望みます.