锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / JQuery / 动画效果和速度
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

简介


挡在.show()或.hide()中指定速度(或更准确地说,一个时长)参数时,就会产生动画效果,即效果会在一个特定的时间段内发生。例如.hide('speed')方法,会同时减少元素的高度、宽度和不透明度,直至这3个属性的值都达到0,与此同时会为该元素应用CSS规则display:none。而.show('speed')方法则会从上到下增大元素的高度,从左到右增大元素的宽度,同时从0到1增加元素的不透明度,直至其内容完全可见。

指定显示速度


对于JQuery提供的任何效果,都可以指定3种预设的速度参数:'slow'、'normal'和'fast'。使用.show('show')会在0.6秒内完成效果,.show('normal')是0.4秒,而.show('fast')则是0.2秒。要指定更准确的速度,可以使用毫秒数值,例如.show(850)。注意。与字符串表示的速度参数不同,数值不需要使用引号。

实例

下面,我们就为《林肯盖提斯堡演说辞》(Lincoln's Gettysburg Address)的第2段指定显示速度,如代码清单4-8所示。

代码清单4-8

$( document ). ready ( function( ) {

$( 'p' ). eq( 1 ). hide( );

$( 'a. more' ). click( function ( ){

$( 'p' ). eq( 1 ). show( 'slow' );

$( this ). hide( );

return false;

});

});

当我们在效果大约完成一半时捕获段落的外观时,会看到类似图4-1所示的结果。

一半结果

1.淡入和淡出


虽然使用.show()和.hide()方法在某种程度上可以创造漂亮的效果,但其效果有时候也可能会显得过于花哨。考虑到这一点,JQuery也提供了两个更为精细的内置动画方法。如果想在显示整个段落时,只是逐渐地增大其不透明度,那么可以使用.function('slow')方法。

代码清单如下

$( document ). ready ( function( ) {

$( 'p' ). eq( 1 ). hide( );

$( 'a. more' ). click( function ( ){

$( 'p' ). eq( 1 ). fadeIn( 'slow' );

$( this ). hide( );

return false;

});

});

2.滑上和滑下


对于本来就处于文档流之外的元素,比较适合使用淡入和淡出动画。例如,对于那些覆盖在页面之上的“亮盒”元素来说,采用淡入和淡出就显得很自然。不过,假如某个元素本来就处在文档流中,那再调用.fadeIn()就会导致文档“跳一下”,以便为新元素腾出地方来。但这种跳跃感在用户眼里就不怎么美观了。

此时,使用JQuery的.slideDown()和.slideUp()方法通常是正确的选择。这两个动画方法仅改变元素的高度。要让段落以垂直滑落的效果出现,可以像代码清单4-2这样调用.slideDown('slow')。

代码清单4-2

$( document ). ready ( function( ) {

$( 'p' ). eq( 1 ). hide( );

$( 'a. more' ). click( function ( ){

$( 'p' ). eq( 1 ). slideDown( 'slow' );

$( this ). hide( );

return false;

});

});

3.复合效果


有时候,我们需要切换某些元素的可见性,要实现切换,可以先检查匹配元素的可见性,然后再添加适当的方法。在此,仍然以淡入淡出效果为例,可以把示例脚本修改为如代码清单4-3所示。

$( document ). ready ( function( ) {

var $firstPara=$( 'p' ). eq( 1 );

$firstPara. hide( );

$( 'a. more' ). click( function ( ){

if ($firstPara. is( ':hidden' )){

$firstPara. fadeIn( 'slow' );

$( this ). text( 'read less' );

}else{

$firstPara. fadeOut( 'slow' );

$( this ). text( 'read more' );

}

return false;

});

});

与我们在本章前面所做的一样,首先缓存选择符以避免重复遍历DOM。而且,这里也不再隐藏被单击的链接,而是修改它的文本。

使用if else语句切换元素的可见性是非常自然的方式。但通过JQuery实现复合效果,却不一定非要使用这个条件语句(尽管在这个例子中,需要条件语句来修改链接的文本)。JQuery提供了一个.toggle()方法,该方法的作用类似于.show()和.hide()方法,而且与它们一样的是,.toggle()方法速度参数也是可选的。另一个复合方法是.slideToggle(),该方法通过逐渐增加或减少元素高度来显示或隐藏元素。代码4-3是使用.slideToggle()方法的脚本。

$( document ). ready ( function( ) {

var $firstPara=$( 'p' ). eq( 1 );

$firstPara. hide( );

$( 'a. more' ). click( function ( ){

$firstPara. slideToggle( 'slow' );

var $link=$( this );

if ( $link. text( )=='read more'){

$link. text('read less');

}else{

$link. text('read more');

}

return false;

});

});

为不重复$(this),我们把它保存在了$link变量中。同样,条件语句检查的是链接的文本而非第二个段落的可见性,因为我们只利用它来修改文本。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内