jQuery技术

jquery学习随笔(动画效果)

字号+ 作者:H5之家 来源:H5之家 2017-07-12 17:01 我要评论( )

jquery学习随笔(动画效果),show hidejQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。$(

正文


show hide
jQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显 示内容和隐藏内容。 $('.show').click(function () { //显示 $('#box').show(); }); $('.hide').click(function () { //隐藏 $('#box').hide(); }); //使用.show()和.hide()的回调函数,可以实现列队动画效果。 $('.show').click(function () { $('#box').show('slow', function () { alert('动画持续完毕后,执行我!'); }); }); //列队动画,使用函数名调用自身 $('.show').click(function () { $('div').first().show('fast', function showSpan() { $(this).next().show('fast', showSpan); }); }); //列队动画,使用arguments.callee 匿名函数自调用 $('.hide').click(function () { $('div').last().hide('fast', function() { $(this).prev().hide('fast', arguments.callee); }); });

队列动画,也就是当上面一个动画结束之后,在接着下一个动画,形成队列的形式

toggle

我们在使用.show()和.hide()的时候,如果需要一个按钮切换操作,需要进行一些条件判 断。而jQuery 提供给我们一个类似功能的独立方法:.toggle()。 $('.toggle').click(function () { $(this).toggle('slow'); }); .slideUp()、.slideDown()和.slideToggle() jQuery 提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名 思义,向上收缩(卷动)和向下展开(滑动)。 $('.down').click(function () { $('#box').slideDown(); }); $('.up').click(function () { $('#box').slideUp(); }); $('.toggle').click(function () { $('#box').slideToggle(); }); 注意:滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。 .fadeIn()和.fadeOut() jQuery 提供了一组专门用于透明度变化的方法:.fadeIn()和.fadeOut(),分别表示淡入、 淡出,当然还有一个自动切换的方法:.fadeToggle()。 $('.in').click(function () { $('#box').fadeIn('slow'); }); $('.out').click(function () { $('#box').fadeOut('slow'); }); $('.toggle').click(function () { $('#box').fadeToggle(); });

上面三个透明度方法只能是从0 到100,或者从100 到0,如果我们想设置指定值就没有办法了。而jQuery 为了解决这个问题提供了.fadeTo()方法。
$('.toggle').click(function () {
$('#box').fadeTo('slow', 0.33); //0.33 表示值为33
});
注意:淡入、淡出效果和显示、隐藏效果一样,具有相同的参数。对于.fadeTo()方法,
如果本身透明度大于指定值,会淡出,否则相反。

animate

jQuery 提供了几种简单常用的固定动画方面我们使用。但有些时候,这些简单动画无法满足我们更加复杂的需求。这个时候,jQuery 提供了一个.animate()方法来创建我们的自定 义动画,满足更多复杂多变的要求。 $('.animate').click(function () { $('#box').animate({ 'width' : '300px', 'height' : '200px', 'fontSize' : '50px', 'opacity' : 0.5 }); });

 jQuery 提供了自定义动画的累加、累减功能。
 $('.animate').click(function () {
 $('#box').animate({
 'left' : '+=100px',
 });
 });

自定义实现列队动画的方式

自定义实现列队动画的方式,有两种:1.在回调函数中再执行一个动画;2.通过连缀或顺序来实现列队动画(使用这种方式必须是同一个元素)。 //通过依次顺序实现列队动画 $('.animate').click(function () { $('#box').animate({'left' : '100px'}); $('#box').animate({'top' : '100px'}); $('#box').animate({'width' : '300px'}); }); 注意:如果不是同一个元素,就会实现同步动画 //通过连缀实现列队动画 $('.animate').click(function () { $('#box').animate({ 'left' : '100px' }).animate({ 'top' : '100px' }).animate({ 'width' : '300px' }); }); //通过回调函数实现列队动画 $('.animate').click(function () { $('#box').animate({ 'left' : '100px' }, function () { $('#box').animate({ 'top' : '100px' }, function () { $('#box').animate({ 'width' : '300px' }); }); }); });

jQuery 提供了一个类似于回

调函数的方法:.queue()。
//使用.queue()方法模拟动画方法跟随动画方法之后
$('#box').slideUp('slow').slideDown('slow').queue(function () {
$(this).css('background', 'orange');
});
现在,我们想继续在.queue()方法后面再增加一个隐藏动画,这时发现居然无法实现。
这是.queue()特性导致的。有两种方法可以解决这个问题,jQuery 的.queue()的回调函数可以
传递一个参数,这个参数是next 函数,在结尾处调用这个next()方法即可再连缀执行列队动
画。
//使用next 参数来实现继续调用列队动画
$('#box').slideUp('slow').slideDown('slow').queue(function (next) {
$(this).css('background', 'orange');
next();
}).hide('slow');
因为next 函数是jQuery1.4 版本以后才出现的,而之前我们普遍使用的是.dequeue()方法。
意思为执行下一个元素列队中的函数。
//使用.dequeue()方法执行下一个函数动画
$('#box').slideUp('slow').slideDown('slow').queue(function () {
$(this).css('background', 'orange');
$(this).dequeue();
}).hide('slow');
如果采用顺序调用,那么使用列队动画方法,就非常清晰了,每一段代表一个列队,而
回调函数的嵌套就会杂乱无章。
//使用顺序调用的列队,逐个执行,非常清晰
$('#box').slideUp('slow');
$('#box').slideDown('slow');
$('#box').queue(function () {
$(this).css('background', 'orange');
$(this).dequeue();
})
$('#box').hide('slow');
.queue()方法还有一个功能,就是可以得到当前动画个列队的长度。当然,这个用法在
普通Web 开发中用的比较少,我们这里不做详细探讨。
//获取当前列队的长度,fx 是默认列队的参数
function count() {
return $("#box").queue('fx').length;
}
//在某个动画处调用
$('#box').slideDown('slow', function () {alert(count());});
jQuery 还提供了一个清理列队的功能方法:.clearQueue()。把它放入一个列队的回调函
数或.queue()方法里,就可以把剩下为执行的列队给移除。
//清理动画列队
$('#box').slideDown('slow', function () {$(this).clearQueue()});

stop()

如果有队列动画,停止的是第一个队列动画,然后继续执行后面的列队动画

第一个参数,如果为true,就会停止并且清除后面的队列动画,动画完全停止,默认为fasle

第二个参数,如果为true,停止后会跳转到末尾的位置上,默认为fasle

:animated

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jQuery Mobile 入门教程

    jQuery Mobile 入门教程

    2017-07-13 13:01

  • js正则判断文件后缀名,jquery 判断后缀名

    js正则判断文件后缀名,jquery 判断后缀名

    2017-07-12 16:01

  • 暑假快速学习JQuery的学习笔记

    暑假快速学习JQuery的学习笔记

    2017-07-12 16:00

  • jQuery CSS3相结合实现时钟插件

    jQuery CSS3相结合实现时钟插件

    2017-07-12 14:08

网友点评