现在的位置: 首页 > 综合 > 正文

learning jQuery 学习笔记八(+jQuery 1.4.1 API)– 效果-基本的隐藏、显示和效果

2017年12月03日 ⁄ 综合 ⁄ 共 3068字 ⁄ 字号 评论关闭

注:本笔记内容摘自《jQuery基础教程》+ jQuery 1.4.1中文参考

基本的隐藏和显示

基本的.hide()和.show()方法不带任何参数。可以把它们相像成类似.css(‘display’,’string’)方法的简写方式,其中string是适当的显示值。

其中,.hide()方法会匹配的元素集合的内联style属性设置为display:none。但它的聪明之处是,她能够在把display的值变成none之前,记住原先的display值,通常是block或inline。恰恰相反,.show()方法会将匹配的元素集合的display属性恢复为应用display:none之前的可见属性。

例如:$(‘p’).hide()和 $(‘p’).show()二者将会隐藏或者显示段落,但是都没有动画效果。

 

效果和速度

指定显示速度

当在.show()和.hide()中指定一个速度参数时,就会产生动画。jQuery可以指定3中速度参数:slow、normal和fast。使用.show(‘slow’)会在0.6,秒内完成效果,.show(‘normal’)是0.4秒,而.show(‘fast’)则是0.2秒。要制定更精确的速度,可以使用毫秒数值,例如.show(1000)。

淡入和淡出

       逐渐增大其不透明度,那么可以使用.fadeIn(‘slow’)方法,.fadeIn()会在一开始设置段落的尺寸,以便内容能够简单的逐渐显示出来。类似地,要逐渐减少不透明度,可以使用.fadeOut()。

 

多重效果

在绑定到jQuery核心的效果中,只有show()和hide()会同时修改多个样式属性---高度、宽度和不透明度。其他效果则只修改一种属性。

fadeIn()和fadeOut():不透明度

fadeTo():不透明度

slideDown()和slideUp():高度

jQuery还提供了一个强大的animate()方法,通过该方法可以创建包含多重效果的自定义动画。Animate()方法接受以下4个参数。

 

jQuery 1.4.1 API

animate(params, options)          返回值:jQuery           

概述

用于创建自定义动画的函数。

这个函数的关键在于指定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性(如“height”、“top”或“opacity”)。注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left.

而每个属性的值表示这个样式属性到多少时动画结束。如果是一个数值,样式属性就会从当前的值渐变到指定的值。如果使用的是“hide”、“show”或“toggle”这样的字符串值,则会为该属性调用默认的动画形式。

参数

params          Options

一组包含作为动画属性和终值的样式属性和及其值的集合

options   Options

一组包含动画选项的值的集合。

 

选项

duration        String,Number

(默认值:"normal") 三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)

easing     String

(默认值:"swing") 要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".

complete        Function

在动画完成时执行的函数

step        Callback

queue     Boolean

(默认值:true) 设定为false将使此动画不进入动画队列 (jQuery 1.2中新增)

 

示例

描述:

第一个按钮按了之后展示了不在队列中的动画。在div扩展到90%的同时也在增加字体,一旦字体改变完毕后,边框的动画才开始。

HTML 代码:

<button id="go1">» AnimateBlock1</button>

<button id="go2">» AnimateBlock2</button>

<divid="block1">Block1</div><div id="block2">Block2</div>

jQuery 代码:

$("#go1").click(function(){

 $("#block1").animate( { width: "90%"}, { queue:false, duration: 5000 } )

    .animate( { fontSize: '10em' } , 1000 )

    .animate( { borderWidth: 5 }, 1000);

});

 

$("#go2").click(function(){

 $("#block2").animate( { width: "90%"}, 1000 )

    .animate( { fontSize: '10em' } , 1000 )

    .animate( { borderWidth: 5 }, 1000);

});

 

描述:

第二个按钮按了之后就是一个传统的链式动画,即等前一个动画完成后,后一个动画才会开始.

HTML 代码:

<buttonid="go1">» Animate Block1</button>

<buttonid="go2">» Animate Block2</button>

<divid="block1">Block1</div><divid="block2">Block2</div>

jQuery 代码:

$("#go1").click(function(){

  $("#block1").animate( { width:"90%"}, { queue: false, duration: 5000 } )

     .animate( { fontSize: '10em' } , 1000 )

     .animate( { borderWidth: 5 }, 1000);

});

 

$("#go2").click(function(){

  $("#block2").animate( { width:"90%"}, 1000 )

     .animate( { fontSize: '10em' } , 1000 )

     .animate( { borderWidth: 5 }, 1000);

});

 

描述:

用600毫秒切换段落的高度和透明度

jQuery 代码:

$("p").animate({

   height: 'toggle', opacity: 'toggle'

 }, { duration: "slow" });

 

描述:

用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)

jQuery 代码:

$("p").animate({

   left: 50, opacity: 'show'

 }, { duration: 500 });

 

描述:

一个使用“easein”函数提供不同动画样式的例子。只有使用了插件来提供这个“easein”函数,这个参数才起作用。

jQuery 代码:

$("p").animate({

   opacity: 'show'

 }, { duration: "slow", easing:"easein" });

 

简单概括

(1)   一组元素上的效果:

       当在一个.animate()方法中以多个属性的方式应用时,是同时发生的。

       当以方法连缀的形式应用时,是按顺序发生的(排队效果)。

(2)   多组元素上的效果:

       默认情况下是同时发生的。

       当在事件处理程序的回调函数中应用时,是按顺序发生的(排队效果)。

抱歉!评论已关闭.