-
$aaron.animate(
{
height: '50' //不能加 分號!
},?
{// 各option間 逗號 隔開
duration :2000,
specialEasing: 'swing',
//每一個動畫都會調(diào)用
step: function(now, st) { //獲取實時數(shù)據(jù),now必須有!下同理
? ?console.log('實時變化的height:'+now); //當多個properties同時變化,now只會獲取最后一個property
},
progress: function(now,jindu) {
console.log('進度:'+jindu);
},
complete: function() { //動畫完成后 回調(diào)函數(shù)
$aaron.after('<div >Animation complete.</div>');
}? ??
}
);
查看全部 -
linear是勻速變化的意思
查看全部 -
.stop()?? 只是停止當前動畫,會繼續(xù)開始下一個動畫
.stop(true)??????? 停止當前動畫,再次點擊,從暫停處繼續(xù)執(zhí)行
.stop(true,true)? 停止當前動畫,直接跳到當前動畫的結(jié)束,再次點擊,從下一個動畫開始執(zhí)行
查看全部 -
$('elem').hide(3000).show(3000)
兩個連著使用,要么都沒參數(shù),但不會有這種情況,要么后面的show里面有參數(shù)
查看全部 -
// 顯示隱藏 .hide()+.show() = .toggle()
// 下拉上卷 .slideUp()+.slideDown() = .slideToggle()
// 淡入淡出 .fadeOut()+.fadeIn() = .fadeToggle()查看全部 -
else if (v == "3") {
??????????? $("p").fadeToggle(1000, "linear");
??????? }沒有什么語法,它確定了動畫過程不同時刻的速度。例如,將一個元素移過頁面的時候,可能讓這個元素緩慢地開始移動,然后變得很快,最后隨著動畫的完成再次慢下來。給動畫添加緩動,使得動畫在視覺上更有趣且更有動態(tài)感。?
jQuery只包含了兩個緩動方法:swing和linear。linear方法提供了一個穩(wěn)定的動畫,以使得動畫的每個步驟都是相同的(例如,如果要讓一個元素以逐漸變化的方式穿過屏幕,每一步的距離和前一步都是相同的)。swing要更加動態(tài)一些,隨著動畫的開始變得更加快一些,然后再慢下來。swing是一個常用設(shè)置,因此,如果沒有指定任何緩動,jQuery會使用swing方法。只是兩個代表不同動畫過程的參數(shù)而已。如果你需要查看更多的動畫,jq有個專門的動畫庫。
這個圖則可以更加明白的看出淡入淡出的動畫變化過程。查看全部 -
jQuery中淡出動畫fadeOut
讓元素在頁面不可見,常用的辦法就是通過設(shè)置樣式的display:none。除此之外還可以一些類似的辦法可以達到這個目的。這里要提一個透明度的方法,設(shè)置元素透明度為0,可以讓元素不可見,透明度的參數(shù)是0~1之間的值,通過改變這個值可以讓元素有一個透明度的效果。常見的淡入淡出動畫正是這樣的原理。
fadeOut()函數(shù)用于隱藏所有匹配的元素,并帶有淡出的過渡動畫效果
所謂"淡出"隱藏的,元素是隱藏狀態(tài)不對作任何改變,元素是可見的,則將其隱藏。
.fadeOut(?[duration?],?[?complete?]?)
通過不透明度的變化來實現(xiàn)所有匹配元素的淡出效果,并在動畫完成后可選地觸發(fā)一個回調(diào)函數(shù)。這個動畫只調(diào)整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會發(fā)生變化。
字符串 'fast' 和 'slow' 分別代表200和600毫秒的延時。如果提供任何其他字符串,或者這個duration參數(shù)被省略,那么默認使用400毫秒的延時
查看全部 -
jQuery中DOM元素的獲取index方法
get方法是通過已知的索引在合集中找到對應的元素。如果反過來,已知元素如何在合集中找到對應的索引呢?
.index()方法,從匹配的元素中搜索給定元素的索引值,從0開始計數(shù)。
語法:參數(shù)接受一個jQuery或者dom對象作為查找的條件
.index()?.index(?selector?)?.index(?element?)
如果不傳遞任何參數(shù)給 .index() 方法,則返回值就是jQuery對象中第一個元素相對于它同輩元素的位置
如果在一組元素上調(diào)用 .index() ,并且參數(shù)是一個DOM元素或jQuery對象, .index() 返回值就是傳入的元素相對于原先集合的位置
如果參數(shù)是一個選擇器, .index() 返回值就是原先元素相對于選擇器匹配元素的位置。如果找不到匹配的元素,則 .index() 返回 -1
簡單來說:
<ul>?????<a></a>?????<li?id="test1">1</li>?????<li?id="test2">2</li>?????<li?id="test3">3</li>?</ul>
$("li").index() 沒有傳遞參數(shù),反正的結(jié)果是1,它的意思是返回同輩的排列循序,第一個li之前有a元素,同輩元素是a開始為0,所以li的開始索引是1
如果要快速找到第二個li在列表中的索引,可以通過如下2種方式處理
$("li").index(document.getElementById("test2"))?//結(jié)果:1?$("li").index($("#test2"))??//結(jié)果:1
?$("#exec").click(function() {
? ? ? ? var v = $("#animation").val();
? ? ? ? var $span = $("span");
? ? ? ? $span.empty();
? ? ? ? if (v == "1") {
? ? ? ? ? ? //找到第一個li的同輩節(jié)點中的索引位置
? ? ? ? ? ? $span.text($("li").index())
? ? ? ? } else if (v == "2") {
? ? ? ? ? ? //通過傳遞dom查找
? ? ? ? ? ? $span.text($("li").index(document.getElementById("test5")))
? ? ? ? } else if (v == "3") {
? ? ? ? ? ? //通過傳遞jQuery對象查找
? ? ? ? ? ? $span.text($("li").index($("#test6")))
$('li').index()沒有參數(shù)的時候,是第一個li相對于同輩元素的位置;
$('li').index($('#text'))?就是傳入的對象$('#text')相對于li的位置
查看全部 -
jQuery中DOM元素的獲取get方法
jQuery是一個合集對象,如果需要單獨操作合集中的的某一個元素,可以通過.get()方法獲取到
以下有3個a元素結(jié)構(gòu):
<a>1</a>?<a>2</a>?<a>3</a>
通過jQuery獲取所有的a元素合集$("a"),如果想進一步在合集中找到第二2個dom元素單獨處理,可以通過get方法
語法:
.get(?[index?]?)
注意2點
get方法是獲取的dom對象,也就是通過document.getElementById獲取的對象
get方法是從0開始索引
所以第二個a元素的查找: $(a).get(1)
負索引值參數(shù)
get方法還可以從后往前索引,傳遞一個負索引值,注意的負值的索引起始值是-1
同樣是找到第二元素,可以傳遞?$(a).get(-2)?
? var $aaron = $("#aaron a");
? $aaron.get(1).style.color = "blue"
?。。?!
eq() 返回的是jquery對象,get()返回的是dom元素。jquery對象封裝了自己的屬性和方法,dom對象也同樣,二者的方法不能混用。
$aaron.eq(1).css("color","blue") ? ??
? $aaron.get(1).style.color = "blue"
eq() 返回的是jquery對象,get()返回的是html數(shù)組。jquery對象,沒有style。
查看全部 -
jQuery中去空格神器trim方法
頁面中,通過input可以獲取用戶的輸入值,例如常見的登錄信息的提交處理。用戶的輸入不一定是標準的,輸入一段密碼:' ?1123456 ?",注意了: 密碼的前后會留空,這可能是用戶的無心的行為,但是密碼確實又沒錯,針對這樣的行為,開發(fā)者應該要判斷輸入值的前后是否有空白符、換行符、制表符這樣明顯的無意義的輸入值。
jQuery.trim()函數(shù)用于去除字符串兩端的空白字符
這個函數(shù)很簡單,沒有多余的參數(shù)用法
需要注意:
移除字符串開始和結(jié)尾處的所有換行符,空格(包括連續(xù)的空格)和制表符(tab)
如果這些空白字符在字符串中間時,它們將被保留,不會被移除
通過右邊的代碼可以明顯看到trim使用后的效果
?<script type="text/javascript">
? ? $("#exec1").click(function() {
? ? ? ? alert("值的長度:" + $("#results1").val().length)
? ? });
? ? $("#exec2").click(function() {
? ? ? ? ?alert("值的長度:" + $.trim($("#results2").val()).length)
? ? });
? ? </script>
查看全部 -
jQuery中查找數(shù)組中的索引inArray
在PHP有in_array()判斷某個元素是否存在數(shù)組中,JavaScript卻沒有,但是jQuery封裝了inArray()函數(shù)判斷元素是否存在數(shù)組中。注意了:在ECMAScript5已經(jīng)有數(shù)據(jù)的indexOf方法支持了,但是jQuery保持了版本向下兼容,所以封裝了一個inArray方法
jQuery.inArray()函數(shù)用于在數(shù)組中搜索指定的值,并返回其索引值。如果數(shù)組中不存在該值,則返回 -1。
語法:
jQuery.inArray(?value,?array?,?)
用法非常簡單,傳遞一個檢測的目標值,然后傳遞原始的數(shù)組,可以通過fromIndex規(guī)定查找的起始值,默認數(shù)組是0開始
例如:在數(shù)組中查找值是5的索引
$.inArray(5,[1,2,3,4,5,6,7])?//返回對應的索引:4
注意:
如果要判斷數(shù)組中,你需要通過該函數(shù)的來進行判斷
查看全部 -
? <script type="text/javascript">
? ? $("#exec").click(function() {
? ? ? ? var v = $("#animation").val();
? ? ? ? var $aaron = $("#aaron");
? ? ? ? $aaron.empty();
? ? ? ? if (v == "1") {
? ? ? ? ? ? // 遍歷數(shù)組元素
? ? ? ? ? ? $.each(['Aaron', '慕課網(wǎng)'], function(i, item) {
? ? ? ? ? ? ? ? $aaron.append("索引=" + i + "; 元素=" + item);
? ? ? ? ? ? });
? ? ? ? } else if (v == "2") {
? ? ? ? ? ? // 遍歷對象屬性
? ? ? ? ? ? $.each({
? ? ? ? ? ? ? ? name: "張三",
? ? ? ? ? ? ? ? age: 18
? ? ? ? ? ? }, function(property, value) {
? ? ? ? ? ? ? ? $aaron.append("屬性名=" + property + "; 屬性值=" + value);
? ? ? ? ? ? });
? ? ? ? }?
? ? });
.each只是處理jQuery對象的方法,jQuery還提供了一個通用的jQuery.each方法,用來處理對象和數(shù)組的遍歷
語法
jQuery.each?) jQuery.each(?,?)
第一個參數(shù)傳遞的就是一個對象或者數(shù)組,第二個是回調(diào)函數(shù)
$.each(["Aaron",?"慕課網(wǎng)"],?function(index,?value)?{ ???//index是索引,也就是數(shù)組的索引 ???//value就是數(shù)組中的值了 });
each就是for循環(huán)方法的一個包裝,內(nèi)部就是通過for遍歷數(shù)組與對象,通過回調(diào)函數(shù)返回內(nèi)部迭代的一些參數(shù),第一個參數(shù)是當前迭代成員在對象或數(shù)組中的索引值(從0開始計數(shù)),第二個參數(shù)是當前迭代成員(與this的引用相同
jQuery.each()函數(shù)還會根據(jù)每次調(diào)用函數(shù)callback的返回值來決定后續(xù)動作。如果返回值為false,則停止循環(huán)(相當于普通循環(huán)中的break);如果返回其他任何值,均表示繼續(xù)執(zhí)行下一個循環(huán)。
$.each(["Aaron",?"慕課網(wǎng)"],?function(index,?value)?{ ????//停止迭代 });
?
jQuery方法可以很方便的遍歷一個數(shù)據(jù),不需要考慮這個數(shù)據(jù)是對象還是數(shù)組
查看全部 -
jQuery中停止動畫stop
動畫在執(zhí)行過程中是允許被暫停的,當一個元素調(diào)用.stop()方法,當前正在運行的動畫(如果有的話)立即停止
語法:
.stop(?[clearQueue?],?[?jumpToEnd?]?)?.stop(?[queue?],?[?clearQueue?]?,[?jumpToEnd?]?)
stop還有幾個可選的參數(shù),簡單來說可以這3種情況
.stop(); 停止當前動畫,點擊在暫停處繼續(xù)開始
.stop(true); 如果同一元素調(diào)用多個動畫方法,尚未被執(zhí)行的動畫被放置在元素的效果隊列中。這些動畫不會開始,直到第一個完成。當調(diào)用.stop()的時候,隊列中的下一個動畫立即開始。如果clearQueue參數(shù)提供true值,那么在隊列中的動畫其余被刪除并永遠不會運行
.stop(true,true); 當前動畫將停止,但該元素上的 CSS 屬性會被立刻修改成動畫的目標值
簡單的說:參考下面代碼、
$("#aaron").animate({?????height:?300?},?5000)?$("#aaron").animate({?????width:?300?},?5000)?$("#aaron").animate({?????opacity:?0.6?},?2000)
stop():只會停止第一個動畫,第二個第三個繼續(xù)
stop(true):停止第一個、第二個和第三個動畫
stop(true ture):停止動畫,直接跳到第一個動畫的最終狀態(tài)?
查看全部 -
jQuery中動畫animate(下)
animate在執(zhí)行動畫中,如果需要觀察動畫的一些執(zhí)行情況,或者在動畫進行中的某一時刻進行一些其他處理,我們可以通過animate提供的第二種設(shè)置語法,傳遞一個對象參數(shù),可以拿到動畫執(zhí)行狀態(tài)一些通知
.animate(?properties,?options?)
options參數(shù)
duration?- 設(shè)置動畫執(zhí)行的時間
easing - 規(guī)定要使用的 easing 函數(shù),過渡使用哪種緩動函數(shù)
step:規(guī)定每個動畫的每一步完成之后要執(zhí)行的函數(shù)
progress:每一次動畫調(diào)用的時候會執(zhí)行這個回調(diào),就是一個進度的概念
complete:動畫完成回調(diào)
其中最關(guān)鍵的一點就是:
如果多個元素執(zhí)行動畫,回調(diào)將在每個匹配的元素上都執(zhí)行一次?。。?!,不是作為整個動畫執(zhí)行一次
?$aaron.animate({
? ? ? ? ? ? ? ? height: '50'
? ? ? ? ? ? }, {
? ? ? ? ? ? ? ? duration :2000,
? ? ? ? ? ? ? ? step: function(now, fx) {
? ? ? ? ? ? ? ? ? ?$aaron.text('高度的改變值:'+now)
? ? ? ? ? ? ? ? }
? ? ? ? ? ? })
?$aaron.animate({
? ? ? ? ? ? ? ? height: '50'
? ? ? ? ? ? }, {
? ? ? ? ? ? ? ? duration :2000,? ? ? ? ? ? ? ? progress: function(now, fx) {
? ? ? ? ? ? ? ? ? ?$aaron.text('進度:'+arguments[1])
查看全部 -
jQuery中動畫animate(上)里面的參數(shù)用大括號{}
有些復雜的動畫通過之前學到的幾個動畫函數(shù)是不能夠?qū)崿F(xiàn),這時候就需要強大的animate方法了
操作一個元素執(zhí)行3秒的淡入動畫,對比一下2組動畫設(shè)置的區(qū)別
$(elem).fadeOut(3000)???$(elem).animate({????????opacity:0?},3000)
顯而易見,animate方法更加靈活了,可以精確的控制樣式屬性從而執(zhí)行動畫
語法:
.animate(?properties?,[?duration?],?[?easing?],?[?complete?]?)?.animate(?properties,?options?)
.animate()方法允許我們在任意的數(shù)值的CSS屬性上創(chuàng)建動畫。2種語法使用,幾乎差不多了,唯一必要的屬性就是一組CSS屬性鍵值對。這組屬性和用于設(shè)置.css()方法的屬性鍵值對類似,除了屬性范圍做了更多限制。第二個參數(shù)開始可以單獨傳遞多個實參也可以合并成一個對象傳遞了
參數(shù)分解:
properties:一個或多個css屬性的鍵值對所構(gòu)成的Object對象。要特別注意所有用于動畫的屬性必須是數(shù)字的!!!!!,除非另有說明;這些屬性如果不是數(shù)字的將不能使用基本的jQuery功能。比如常見的,border、margin、padding、width、height、font、left、top、right、bottom、wordSpacing等等這些都是能產(chǎn)生動畫效果的。background-color很明顯不可以,因為參數(shù)是red或者GBG這樣的值,非常用插件,否則正常情況下是不能只用動畫效果的。注意,CSS 樣式使用 DOM 名稱(比如 "fontSize")來設(shè)置,而非 CSS 名稱(比如 "font-size")。
特別注意單位,屬性值的單位像素(px),除非另有說明。單位em 和 %需要指定使用
.animate({?????left:?50,??????width:?'50px'????????opacity:?'show',???????fontSize:?"10em",?},?500);
除了定義數(shù)值,每個屬性能使用'show', 'hide', 和 'toggle'。這些快捷方式允許定制隱藏和顯示動畫用來控制元素的顯示或隱藏
.animate({???);
如果提供一個以+= 或 -=開始的值,那么目標值就是以這個屬性的當前值加上或者減去給定的數(shù)字來計算的
.animate({??????left:?'+=50px'?},?"slow");
duration時間
動畫執(zhí)行的時間,持續(xù)時間是以毫秒為單位的;值越大表示動畫執(zhí)行的越慢,不是越快。還可以提供'fast' 和 'slow'字符串,分別表示持續(xù)時間為200 和 600毫秒。
easing動畫運動的算法
jQuery庫中默認調(diào)用 swing。如果需要其他的動畫算法,請查找相關(guān)的插件
complete回調(diào)
動畫完成時執(zhí)行的函數(shù),這個可以保證當前動畫確定完成后發(fā)會觸發(fā)
查看全部
舉報