jQuery學習筆記-2-效果
效果
本章主要記錄jQuery效果,這些內容來自學習的網上的一些資料。
隱藏、顯示、切換,滑動,淡入淡出,以及動畫
一.隱藏/顯示:
一個hide()例項。演示如何隱藏文字。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $(".ex .hide").click(function(){ $(this).parents(".ex").hide("slow"); }); }); </script> <style type="text/css"> div.ex { background-color:#e5eecc; padding:7px; border:solid 1px #c3c3c3; } </style> </head> <body> <h3>Google</h3> <div class="ex"> <button class="hide">點我隱藏</button> <p>站點名: Google<br> 站點 URL:http://www.google.com</p> </div> <h3>我的主頁</h3> <div class="ex"> <button class="hide">點我隱藏</button> <p>站點名: 我的主頁<br> 站點 URL:https://blog.csdn.net/qq_39492374</p> </div> </body> </html>
1.jQuery hide() 和 show()
通過 jQuery,您可以使用 hide() 和 show() 方法來隱藏和顯示 HTML 元素:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("#hide").click(function(){ $("p").hide(); }); $("#show").click(function(){ $("p").show(); }); }); </script> </head> <body> <p>如果你點選“隱藏” 按鈕,我將會消失。</p> <button id="hide">隱藏</button> <button id="show">顯示</button> </body> </html>
語法:
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
可選的 speed 引數規定隱藏/顯示的速度,可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是隱藏或顯示完成後所執行的函式名稱。
下面的例子演示了帶有 speed 引數的 hide() 方法:
$("button").click(function(){
$("p").hide(1000); });
例項
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $("p").hide(1000); }); }); </script> </head> <body> <button>隱藏</button> <p>這是個段落,內容比較少。</p> <p>這是另外一個小段落</p> </body> </html>
下面的例子演示了帶有 speed 引數的 hide() 方法,並使用回撥函式隱藏按鈕s:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<style>
div{
width: 130px;
height: 50px;
padding: 15px;
margin: 15px;
background-color: green;
}
</style>
<script>
$(document).ready(function(){
$(".hidebtn").click(function(){
$("div").hide(1000,"linear",function(){
$("button").hide("slow");
});
});
});
</script>
</head>
<body>
<div>隱藏及設定回撥函式</div>
<button class="hidebtn">隱藏</button>
</body>
</html>
2.jQuery toggle()
通過 jQuery,您可以使用 toggle() 方法來切換 hide() 和 show() 方法。
切換隱藏/顯示
顯示被隱藏的元素,並隱藏已顯示的元素:
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").toggle();
});
});
</script>
<button>隱藏/顯示</button>
<p>這是一個文字段落</p>
<p>這是另一個文字段落</p>
語法:
$(selector).toggle(speed,callback);
可選的 speed 引數規定隱藏/顯示的速度,可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是隱藏或顯示完成後所執行的函式名稱。
二.淡入淡出
1.jQuery Fading 方法
通過 jQuery,您可以實現元素的淡入淡出效果。
jQuery 擁有下面四種 fade 方法:
- fadeIn()
- fadeOut()
- fadeToggle()
- fadeTo()
2.jQuery fadeIn() 方法
jQuery fadeIn() 用於淡入已隱藏的元素。
語法:
$(selector).fadeIn(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。.
可選的 callback 引數是 fading 完成後所執行的函式名稱。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
});
</script>
</head>
<body>
<p>以下例項演示了 fadeIn() 使用了不同引數的效果。</p>
<button>點選淡入 div 元素。</button>
<br><br>
<div id="div1" style="width:80px;height:80px;display:none;background-color:red;"></div><br>
<div id="div2" style="width:80px;height:80px;display:none;background-color:green;"></div><br>
<div id="div3" style="width:80px;height:80px;display:none;background-color:blue;"></div>
</body>
</html>
3.jQuery fadeOut() 方法
jQuery fadeOut() 方法用於淡出可見元素。
語法:
$(selector).fadeOut(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是 fading 完成後所執行的函式名稱。
例項
$("button").click(function(){
$("#div1").fadeOut();
$("#div2").fadeOut("slow");
$("#div3").fadeOut(3000);
});
4.jQuery fadeToggle() 方法
jQuery fadeToggle() 方法可以在 fadeIn() 與 fadeOut() 方法之間進行切換。
如果元素已淡出,則 fadeToggle() 會向元素新增淡入效果。
如果元素已淡入,則 fadeToggle() 會向元素新增淡出效果。
語法:
$(selector).fadeToggle(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是 fading 完成後所執行的函式名稱。
例項
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
5.jQuery fadeTo() 方法
jQuery fadeTo() 方法允許漸變為給定的不透明度(值介於 0 與 1 之間)。
語法:
$(selector).fadeTo(speed,opacity,callback);
必需的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
fadeTo() 方法中必需的 opacity 引數將淡入淡出效果設定為給定的不透明度(值介於 0 與 1 之間)。
可選的 callback 引數是該函式完成後所執行的函式名稱。
例項
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});
三.滑動
通過 jQuery,您可以在元素上建立滑動效果。
jQuery 擁有以下滑動方法:
- slideDown()
- slideUp()
- slideToggle()
1.jQuery slideDown() 方法
jQuery slideDown() 方法用於向下滑動元素。
語法:
$(selector).slideDown(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是滑動完成後所執行的函式名稱。
下面的例子演示了 slideDown() 方法:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideDown("slow");
});
});
</script>
<style type="text/css">
#panel,#flip
{
padding:5px;
text-align:center;
background-color:#e5eecc;
border:solid 1px #c3c3c3;
}
#panel
{
padding:50px;
display:none;
}
</style>
</head>
<body>
<div id="flip">點我滑下面板</div>
<div id="panel">Hello world!</div>
</body>
</html>
2.jQuery slideUp() 方法
jQuery slideUp() 方法用於向上滑動元素。
語法:
$(selector).slideUp(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是滑動完成後所執行的函式名稱。
下面的例子演示了 slideUp() 方法:
例項
$("#flip").click(function(){
$("#panel").slideUp();
});
3.jQuery slideToggle() 方法
jQuery slideToggle() 方法可以在 slideDown() 與 slideUp() 方法之間進行切換。
如果元素向下滑動,則 slideToggle() 可向上滑動它們。
如果元素向上滑動,則 slideToggle() 可向下滑動它們。
$(selector).slideToggle(speed,callback);
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是滑動完成後所執行的函式名稱。
下面的例子演示了 slideToggle() 方法:
例項
$("#flip").click(function(){
$("#panel").slideToggle();
});
四.動畫
1.jQuery 動畫 - animate() 方法
jQuery animate() 方法用於建立自定義動畫。
語法:
$(selector).animate({params},speed,callback);
必需的 params 引數定義形成動畫的 CSS 屬性。
可選的 speed 引數規定效果的時長。它可以取以下值:“slow”、“fast” 或毫秒。
可選的 callback 引數是動畫完成後所執行的函式名稱。
下面的例子演示 animate() 方法的簡單應用。它把
元素往右邊移動了 250 畫素:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({left:'250px'});
});
});
</script>
</head>
<body>
<button>開始動畫</button>
<p>預設情況下,所有的 HTML 元素有一個靜態的位置,且是不可移動的。
如果需要改變為,我們需要將元素的 position 屬性設定為 relative, fixed, 或 absolute!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>
</body>
</html>
2.jQuery animate() - 操作多個屬性
請注意,生成動畫的過程中可同時使用多個屬性:
例項
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5', //透明度
height:'150px',
width:'150px'
});
});
3.jQuery animate() - 使用相對值
也可以定義相對值(該值相對於元素的當前值)。需要在值的前面加上 += 或 -=:
例項
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
4.jQuery animate() - 使用預定義的值
您甚至可以把屬性的動畫值設定為 “show”、“hide” 或 “toggle”:
例項
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
5.jQuery animate() - 使用佇列功能
預設地,jQuery 提供針對動畫的佇列功能。
這意味著如果您在彼此之後編寫多個 animate() 呼叫,jQuery 會建立包含這些方法呼叫的"內部"佇列。然後逐一執行這些 animate 呼叫。
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
下面的例子把
元素先往右邊移動了 100 畫素,然後增加文字的字號:$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
五.停止效果
1.jQuery stop() 方法
jQuery stop() 方法用於停止動畫或效果,在它們完成之前。
stop() 方法適用於所有 jQuery 效果函式,包括滑動、淡入淡出和自定義動畫。
語法:
$(selector).stop(stopAll,goToEnd);
可選的 stopAll 引數規定是否應該清除動畫佇列。預設是 false,即僅停止活動的動畫,允許任何排入佇列的動畫向後執行。
可選的 goToEnd 引數規定是否立即完成當前動畫。預設是 false。
因此,預設地,stop() 會清除在被選元素上指定的當前動畫。
下面的例子演示 stop() 方法,不帶引數:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideDown(5000);
});
$("#stop").click(function(){
$("#panel").stop();
});
});
</script>
<style type="text/css">
#panel,#flip
{
padding:5px;
text-align:center;
background-color:#e5eecc;
border:solid 1px #c3c3c3;
}
#panel
{
padding:50px;
display:none;
}
</style>
</head>
<body>
<button id="stop">停止滑動</button>
<div id="flip">點我向下滑動面板</div>
<div id="panel">Hello world!</div>
</body>
</html>
六.Callback方法
1.jQuery 動畫的問題
許多 jQuery 函式涉及動畫。這些函式也許會將 speed 或 duration 作為可選引數。
例子:
$(“p”).hide(“slow”)
speed 或 duration 引數可以設定許多不同的值,比如 “slow”, “fast”, “normal” 或毫秒。
例項
以下例項在隱藏效果完全實現後回撥函式:
使用 callback 例項
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落現在被隱藏了");
});
});
以下例項沒有回撥函式,警告框會在隱藏效果完成前彈出:
沒有 callback(回撥)
$("button").click(function(){
$("p").hide(1000);
alert("段落現在被隱藏了");
});
七.鏈(Chaining)
通過 jQuery,可以把動作/方法連結在一起。
Chaining 允許我們在一條語句中執行多個 jQuery 方法(在相同的元素上)。
1.jQuery 方法連結
直到現在,我們都是一次寫一條 jQuery 語句(一條接著另一條)。
不過,有一種名為連結(chaining)的技術,允許我們在相同的元素上執行多條 jQuery 命令,一條接著另一條。
提示: 這樣的話,瀏覽器就不必多次查詢相同的元素。
如需連結一個動作,您只需簡單地把該動作追加到之前的動作上。
下面的例子把 css()、slideUp() 和 slideDown() 連結在一起。“p1” 元素首先會變為紅色,然後向上滑動,再然後向下滑動:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function()
{
$("button").click(function(){
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
});
});
</script>
</head>
<body>
<p id="p1">菜鳥教程!!</p>
<button>點我</button>
</body>
</html>
如果需要,我們也可以新增多個方法呼叫。
提示:當進行連結時,程式碼行會變得很長。不過,jQuery 語法不是很嚴格;您可以按照希望的格式來寫,包含換行和縮排。
如下書寫也可以很好地執行:
例項
$("#p1").css("color","red")
.slideUp(2000)
.slideDown(2000);
jQuery 會拋掉多餘的空格,並當成一行長程式碼來執行上面的程式碼行。
208.10.26-2018.10.29