Maison  >  Article  >  interface Web  >  Parlons de la façon d'implémenter l'animation à l'aide de jQuery (explication détaillée du code)

Parlons de la façon d'implémenter l'animation à l'aide de jQuery (explication détaillée du code)

青灯夜游
青灯夜游avant
2022-01-20 19:40:513222parcourir

Comment implémenter une animation avec jQuery ? L'article suivant vous présentera quelques méthodes jQuery pour implémenter des animations prédéfinies ou des animations personnalisées. J'espère qu'il vous sera utile !

Parlons de la façon d'implémenter l'animation à l'aide de jQuery (explication détaillée du code)

Animations prédéfinies

Afficher et masquer

La méthode show() et la méthode hide() sont les méthodes d'animation les plus basiques dans jQuery. La syntaxe spécifique est la suivante : show() 方法和 hide() 方法是 jQuery 中最基本的动画方法。具体语法如下:

$element.show([speed],[easing],[fn]);
$element.hide([speed],[easing],[fn]);
  • speed : 三种预定速度之一的字符串 (“slow”、“normal”或者“fast”) 或表示动画时长的毫秒数值。
  • easing : 用来指定切换效果,默认是 “swing”,可用参数 “linear ”。
  • fn : 在动画完成时执行的函数,每个元素执行一次。
/* 
显示与隐藏
1.无动画版本
  * show()- 显示
  * hide() - 隐藏
2.有动画版本 - 同时改变宽度和高度
 * show (speed,callback)
  * speed - 动画执行的时长,单位为毫秒
  * callback - 动画执行完毕后的回调函数
 * hide (speed, callback)
  * speed - 动画执行的时长,单位为毫秒
  * callback - 动画执行完毕后的回调函数
*/

$('#box').hide(2000,function(){
$('#box').show(2000);          
});

滑动式动画

slidelUp() 方法和 slideDown() 方法通过改变高度值实现动画效果。具体语法如下:

$element.slideUp([speed],[easing],[fn]);
$element.slideDown([speed],[easing],[fn]);
  • speed : 三种预定速度之一的字符串 (“slow”、“normal”或者“fast”) 或表示动画时长的毫秒数值。
  • easing : 用来指定切换效果,默认是“swing”,可用参数“linear ”。
  • fn : 在动画完成时执行的函数,每个元素执行一次。
/* 
滑动式动画 - slideup()和slideDown()
* 注意 - 没有无动画版本(底层代码预定义动画执行的时长)
* 效果 - 改变指定元素的高度
*/
$('#box').slideUp(3000);
$('#box').slideDown(3000);

淡入淡出效果

fadeln() 方法和 fadeOut() 方法通过改变透明度实现动画效果。具体语法如下:

$element.fadeln([speed],[easing],[fn]);
$element.fadeOut([speed],[easing],[fn]);
  • speed : 三种预定速度之一的字符串 (“slow”、“normal”或者“fast”) 或表示动画时长的毫秒数值。
  • easing : 用来指定切换效果,默认是“swing”,可用参数“linear ”。
  • fn : 在动画完成时执行的函数,每个元素执行一次。
// 改变元素的透明度
$('#box').fadeOut(3000);
$('#box').fadeIn(3000);

动画切换效果

jQuery 除了提供了三种预定义动画效果之外,还提供三组动画切换效果:

  • toggle ([speed], [easing] [, fn] )方法 : 如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。
  • slideToggle([speed], [easing] [, fn]) 方法 : 通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。
  • fadeToggle([speed], [easing] [, fn]) 方法 : 通过不透明度的变化来开关所有匹配元素的淡入和淡出效果,并在动画完成后可选地触发一个回调函数。
$('#btn').click(function(){
// $('#box').toggle(3000);
// $('#box').slideToggle(3000);
$('#box').fadeToggle(3000)
})

具有局限性

自定义动画

animate()方法

jQuery 提供了 anirmate() 方法完成自定义动画效果,该方法具有两种用法:

$element.animate(properties,duration,easing,complete)
  • properties : 一个CSS属性和值的对象,动画将根据这组对象移动。
  • duration : 一个字符串或者数字决定动画将运行多久。
  • easing : 一个字符串,表示过渡使用哪种缓动函数。
  • cormplete : 在动画完成时执行的回调函数。
/* 
animate()方法–自定义动画方法
1.animate(properties,duration,callback)
 * properties - 表示cSS的样式属性
  * 设置动画执行结束的样式属性值
 * duration - 表示动画执行的时长,单位为亳秒
 * callback - 表示动画执行完毕后的回调函数
2.animate(properties,options)
 * properties - 表示cSS的样式属性
  * 设置动画执行结束的样式属性值
 * options - 表示设置动画的相关参数
  * speed - 表示动画执行的时长,单位为毫秒
  * comalete - 表示动画执行完毕后的回调函数
  * queue - 布尔值,设置是否添加到动画队列中
*/
/* $('#box').animate({
 width : 100,
 height : 100
},3000);
*/
$('#box').animate({
 width : 100,
 height : 100,
 left : 100
},{
 speed : 3000
});

通过 animate() 方法实现动画效果,但不支持以下 CSS 样式属性:

  • backgroundColor
  • borderBottonColor.
  • borderLeftColor
  • borderRightColor
  • borderTopColor
  • Color
  • outlineColor

并发与排队效果

并发效果 : 指的就是多个动画效果同时执行。

$("#panel").click(function(){
 $(this).animate({
   left: "500px",
   height:"200px"
 }, 3000);
};

排队效果 : 指的就是多个动画按照先后顺序执行。

$("#panel").click(function(){
 $(this).animate({ left: "500px"},3000)
  .animate({ height: "200px" }, 3000);
});

queue : 用于控制当前的动画效果是并发还是排队效果:

/* 
queue - 用于控制当前的动画效果是并发还是排队效果
* 参数
 * false - 并发
 * true - 排队
*/
$('#box').animate({
 left : 300
},{
 duration : 3000
}).animate({
 top : 300
},{
 duration : 3000,
 queue : true
});

停止动画效果

jQuery 提供了 stop() 方法用于停止所有在指定元素上正在运行的动画,具体语法如下:

$element.animate([clearQueue][, gotoEnd]);

clearQueue : 如果设置成 true,则清空队列。可以立即结束动画。

gotoEnd : 让当前正在执行的动画立即完成,并且重设 show 和 hide 的原始样式,调用回调函数等

$('#stort').click(function(){
 $('#box').animate({
 left : 600
},3000).animate({
 top : 200
 },3000)
});
$('#stop').click(function(){
/* 
 * stop()方法没有接收任何参数时 - 立即停止执行动画
 * stop(queue)方法的第一个参数
  * false - 表示停止当前动画,但队列中的动画继续执行
  * true - 表示停止当前动画,并且清空动画队列
 * stop (queue,gotoEnd)方法的第二个参数
  * false - 不会做任何处理
  * true - 表示停止当前动画,并且将指定元素设置为动画执行完毕后的样式
*/
 $('#box').stop(true,true);
});

延迟执行动画

jQuery 提供了 delay()

$element.delay(duration, queueName]);

  • speed : une chaîne de l'une des trois vitesses prédéterminées ("lente", "normale" ou "rapide") ou une valeur en millisecondes représentant la durée de l'animation.
  • Easing : utilisé pour spécifier l'effet de commutation, la valeur par défaut est "swing", le paramètre disponible est "linear".
  • fn : Fonction exécutée lorsque l'animation est terminée, une fois pour chaque élément.
$('#box').animate({
 left : 600
},3000).delay(1000).animate({
 top : 200
},3000);

Sliding animation

La méthode slidelUp() et la méthode slideDown() obtiennent des effets d'animation en modifiant la valeur de la hauteur. La syntaxe spécifique est la suivante : rrreee

  • speed : une chaîne de l'une des trois vitesses prédéterminées ("lente", "normale" ou "rapide") ou une valeur en millisecondes représentant la durée de l'animation.
  • Easing : utilisé pour spécifier l'effet de commutation, la valeur par défaut est "swing", le paramètre disponible est "linear".
  • fn : Fonction exécutée lorsque l'animation est terminée, une fois pour chaque élément.
rrreee🎜🎜Fade effect🎜🎜🎜🎜La méthode fadeln() et la méthode fadeOut() obtiennent des effets d'animation en modifiant la transparence. La syntaxe spécifique est la suivante : 🎜rrreee
  • speed : une chaîne de l'une des trois vitesses prédéterminées ("lente", "normale" ou "rapide") ou une valeur en millisecondes représentant la durée de l'animation.
  • Easing : utilisé pour spécifier l'effet de commutation, la valeur par défaut est "swing", le paramètre disponible est "linear".
  • fn : Fonction exécutée lorsque l'animation est terminée, une fois pour chaque élément.
rrreee🎜🎜🎜Effet de changement d'animation🎜🎜🎜🎜En plus de fournir trois effets d'animation prédéfinis, jQuery fournit également trois ensembles d'effets de changement d'animation :🎜
  • bascule ([speed], [easing] [, fn] ) : Si l'élément est visible, passez à caché si l'élément est masqué, passez à visible ; Méthode
  • slideToggle([speed], [easing] [, fn]) : bascule la visibilité de tous les éléments correspondants en modifiant la hauteur, et éventuellement une fois le changement terminé. Déclencheur une fonction de rappel.
  • fadeToggle([speed], [easing] [, fn]) Méthode : changez les effets de fondu d'entrée et de sortie de tous les éléments correspondants en modifiant l'opacité, et termine l’animation et déclenche éventuellement une fonction de rappel.
rrreee🎜🎜a des limites🎜🎜

Animation personnalisée🎜🎜🎜🎜méthode animate()🎜🎜🎜🎜jQuery fournit anirmate Le () complète l'effet d'animation personnalisé. Cette méthode a deux utilisations : 🎜rrreee
  • properties : un objet de propriétés et de valeurs CSS. L'animation se déplacera en fonction de cet ensemble d'objets.
  • durée : Une chaîne ou un nombre qui détermine la durée pendant laquelle l'animation sera exécutée.
  • easing : Une chaîne indiquant quelle fonction d'assouplissement utiliser pour la transition.
  • corplete : fonction de rappel exécutée lorsque l'animation est terminée.
rrreee🎜Les effets d'animation sont obtenus via la méthode animate(), mais les attributs de style CSS suivants ne sont pas pris en charge :🎜
    backgroundColor
  • borderBottonColor.
  • borderLeftColor
  • borderRightColor code>
  • borderTopColor
  • Couleur
  • outlineColor
🎜🎜🎜Effets de concurrence et de file d'attente🎜🎜🎜🎜Effets simultanés : fait référence à l'exécution de plusieurs effets d'animation en même temps. 🎜rrreee🎜Effet Queue : fait référence à l'exécution de plusieurs animations en séquence. 🎜rrreee🎜queue : Utilisé pour contrôler si l'effet d'animation actuel est simultané ou en file d'attente : 🎜rrreee🎜🎜🎜Arrêter l'effet d'animation🎜🎜🎜🎜jQuery fournit stop() Le La méthode est utilisée pour arrêter toutes les animations en cours d'exécution sur l'élément spécifié. La syntaxe spécifique est la suivante : 🎜rrreee🎜clearQueue : si elle est définie sur true, la file d'attente est effacée. L'animation peut être terminée immédiatement. 🎜🎜gotoEnd : laissez l'animation en cours d'exécution se terminer immédiatement, réinitialisez les styles d'affichage et de masquage d'origine, appelez les fonctions de rappel, etc. 🎜rrreee🎜🎜🎜Retardez l'exécution de l'animation🎜🎜🎜🎜jQuery fournit delay() permet de définir un délai pour reporter l'exécution des éléments suivants dans la file d'attente. La syntaxe spécifique est la suivante : 🎜rrreee🎜durée : temps de retard, en millisecondes. 🎜🎜queueName : nom de file d'attente, la valeur par défaut est Ex, file d'attente d'animation. 🎜rrreee🎜 Tutoriels vidéo associés recommandés : 🎜Tutoriel vidéo jQuery🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer