首頁  >  文章  >  web前端  >  分享一些常用的jQuery動畫事件和動畫函數_jquery

分享一些常用的jQuery動畫事件和動畫函數_jquery

WBOY
WBOY原創
2016-05-16 15:29:261476瀏覽

部分jQuery常用的動畫函數,整理了一下,在做互動頁面的時候挺有用的

.css('a','12px');
.css({
 a:'12px',
 b:'#fff'
});
.show();
.hide();
.toggle();
.fadeIn();
.fadeOut();
.fadeToggle();
.slideDown();
.slideUp();
.slideToggle();
.text('string');
.animate({
 a:'40px',
 b:'ccc'
},200)
.fadeTo(600,0.4);

接著又整理了一些animate函數能夠操作的css屬性,其實也是從網路上其他地方找來的(http://www.jb51.net/article/75510.htm):

backgroundPosition
 borderWidth
 borderBottomWidth
 borderLeftWidth
 borderRightWidth
 borderTopWidth
 borderSpacing
 margin
 marginBottom
 marginLeft
 marginRight
 marginTop
 outlineWidth
 padding
 paddingBottom
 paddingLeft
 paddingRight
 paddingTop
 height
 width
 maxHeight
 maxWidth
 minHeight
 maxWidth
 font

 fontSize(在animate函數的css參數指定並不同於標準css屬性,例如這個css標準是:font-size。同理上
面很多也是這樣的情況)

 bottom
 left
 right
 top
 letterSpacing
 wordSpacing
 lineHeight
 textIndent
 opacity

 jQuery動畫函數

 jQuery動畫函數分成三類:

1.基本動畫函數:既有透明漸變又有滑動效果,常用動畫效果。
2.滑動動畫函數:僅使用滑動效果。
3.淡入淡出動畫函數:僅使用淡入淡出效果。

一.基本動畫函數:

1、show()

顯示隱藏符合元素。這個就是'show( speed, [callback] )'無動畫的版本。如果選擇的元素是可見的,這個方法將不會改變任何東西。無論這個元素是透過hide()方法隱藏的還是在CSS裡設定了display:none;,這個方法都會有效。
例如:顯示所有段落,$("p").show()

2、show(speed,[callback])

以優雅的動畫顯示相符的元素,並且在顯示完成後可選擇傳回一個回呼函。可根據指定的速度動態改變每個匹配元素高度、寬度和不透明度。
例如:用緩慢的動畫將隱藏的段落顯示出來,歷時600毫秒,$("p").show(600)

3、hide()

隱藏顯示元素。這就是 'hide( speed, [callback] )'的無動畫版。如果選擇的元素是隱藏的,這個方法將不會改變任何東西。
例如:隱藏所有段落,$("p").hide()

4、hide(speed,[callback])

以優雅的動畫隱藏所有匹配的元素,並在顯示完成後可選的觸發一個回調函數。可以根據指定的速度動態地改變每個匹配元素的高度、寬度和不透明度。在jQuery1.3中,padding和margin也會有動畫,效果更流暢。
例如:用600ms的時間將段落緩慢的隱藏,$("p").hide("slow");

5、toggle

切換元素的可見狀態。如果元素時可見的,切換為隱藏的;如果元素是隱藏的,則切換為可見的。
例如:切換所有段落的可見狀態,$("p").toggle()

6、toggle(switch)

根據switch參數切花元素的可見狀態(true為可見,false為隱藏)。如果switch設為true,則呼叫show()方法來顯示符合的元素,如果switch設為false則呼叫hide()來隱藏元素。
例如:切換所有段落的可見狀態,varflip=0;$("button").click(function(){$("p").toggle(flip %2==0);});

7、toggle(speed,[callback])

以優雅的動畫切換所有匹配的元素,並在顯示完成後可選的觸發一個回調函數。可根據指定的速度動態的改變每個匹配元素的高度、寬度和不透明度。 jquery1.3,padding和margin也會有動畫,效果更流暢。

例如:用200ms將段落快速切換顯示狀態,之後彈出一個對話框,$("p").toggle("fast",function(){alert("hello!");});

二.滑動動畫函數sliding

1、slideDown(speed,[callback])

透過高度變化(向下增大)來動態的顯示所有符合的元素,在顯示完成後可選擇的處發一個回呼函數。這個動畫效果只調整元素的高度,可以是相符的元素以「滑動」的方式顯示出來。在jQuery1.3中,上下的padding和margin也會有動畫,效果更流暢。
例如:用600ms緩慢的將段落滑下,$("p").slideDown("slow");

2、slideUp(speed,[callback])

透過高度變化(向上減少)來動態的隱藏所有匹配的元素,在隱藏完成後可選的觸發一個回調函數。
例如:600ms緩慢的將段落滑上,$("p").slideUp("slow");

3、slideToggle(speed,[callback])

透過高度變化來切換所有匹配元素的可見性,並在切換完成後可選的觸發一個回調函數。
例如:600ms緩慢的將段落滑上或滑下,$("p").slideTogggle("slow");

三.淡入淡出函數Fading

1、fadeIn(speed,[callback])

透過透明度的變化來實現所有匹配元素的淡入效果,並在動畫完成後可選的調用一個回調函數。這個動畫只調整元素的不透明度,也就是說所有匹配的元素的高度和寬度不會改變。
例如:用600ms緩慢的將段落淡入,$("p").fadeIn("slow");

2、fadeOut(speed,[callback])

透過不透明度的變化來實現所有匹配元素的淡出效果,並在動畫完成後可選擇的觸發一個回調函數。
例如:用600ms緩慢的將段落淡出,$("p").fadeOut("slow");

3、fadeTo(speed,opacity,[callback])

把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选的出发一个回调函数。
例如:用600ms缓慢将段落的透明度调整到0.66,大约2/3的可见度,$("p").fadeTo("slow",0.66)

四、自定义动画函数Custom

1、animate(params,[duration],[easing],[callback])用于创建自定义动画的函数。这个函数的关键在于制定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性(如height、top或opacity)。注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left。而每个属性的值表示这个样式属性到多少是动画结束。如果是一个数值,样式属性就会从当前的值渐变到指定的值。如果使用的是hide、show、toggle这样的字符串值,则会就该属性调用默认的动画形式。

例如:点击按钮后div元素的几个不同属性一同变化,

$("#go").click(function(){
$("#block").animate({
width:"90%",height:"100%",fontSize:"10em",borderWidth:10
},1000);
});

2、stop([clearQueue],[gotoEnd])

停止所有在指定元素上正在运行的动画。如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行clearQueue(Boolean):如果设置成true,则清空队列。可以立即结束动画。gotoEnd(Boolean):让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。

例如:点击Go之后开始动画,点Stop之后会在当前位置停下来:

// 开始动画
$("#go").click(function(){
$(".block").animate({left: '+200px'}, 5000);
});
// 当点击按钮后停止动画
$("#stop").click(function(){
$(".block").stop();
});
[javascript] view plaincopy
$(document).ready(function(){ 
$(".box h3").toggle(function(){ 
$(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); 
$(this).addClass("arrow"); 
return false; 
},function(){ 
$(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); 
$(this).removeClass("arrow"); 
return false; 
}); 
}); 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn