Heim > Web-Frontend > js-Tutorial > Mehrere in jQuery integrierte Animationsstile

Mehrere in jQuery integrierte Animationsstile

小云云
Freigeben: 2018-01-06 09:08:33
Original
1968 Leute haben es durchsucht

Bei der Verwendung von JavaScript zur Implementierung von Animationen ist das Prinzip sehr einfach: Wir müssen den CSS-Stil des DOM-Elements jedes Mal nur in einem festen Zeitintervall (z. B. 0,1 Sekunden) ein wenig ändern (z. B. die Höhe erhöhen). und Breite um 10 % erhöht, und es sieht aus wie eine Animation.

Aber um Animationseffekte mithilfe von JavaScript manuell zu implementieren, muss sehr komplexer Code geschrieben werden. Wenn Sie Animationseffekte mit Funktionen zur einfachen Wiederverwendung kapseln möchten, müssen Sie weitere Dinge berücksichtigen. In diesem Artikel werden hauptsächlich verschiedene in jQuery integrierte Animationsstile vorgestellt.

Mit jQuery zum Implementieren von Animationen könnte der Code nicht einfacher sein: Es ist nur eine Codezeile erforderlich!

Werfen wir zunächst einen Blick auf mehrere in jQuery integrierte Animationsstile:

Anzeigen / Ausblenden

Rufen Sie show() und hide( direkt ohne Parameter auf) , zeigt DOM-Elemente an und verbirgt sie. Solange jedoch ein Zeitparameter übergeben wird, wird daraus eine Animation:

var p = $('#test-show-hide');
p.hide(3000); // 在3秒钟内逐渐消失
Nach dem Login kopieren

Die Zeit wird in Millisekunden angegeben, es können aber auch Zeichenfolgen wie „langsam“ und „schnell“ sein:

var p = $('#test-show-hide');
p.show('slow'); // 在0.6秒钟内逐渐显示
Nach dem Login kopieren

Die toggle()-Methode bestimmt, ob show() oder hide() basierend auf dem aktuellen Status angezeigt wird.

slideUp / slideDown

Sie haben vielleicht gesehen, dass sich show() und hide() von der oberen linken Ecke aus allmählich erweitern oder verkleinern, während sich slideUp() und slideDown() allmählich erweitern oder verkleinern die vertikale Richtung.

slideUp() schließt ein sichtbares DOM-Element, der Effekt ist wie das Schließen eines Vorhangs, slideDown() macht das Gegenteil und slideToggle() bestimmt die nächste Aktion basierend darauf, ob das Element sichtbar ist:

var p = $('#test-slide');
p.slideUp(3000); // 在3秒钟内逐渐向上消失
Nach dem Login kopieren

fadeIn / fadeOut

Der Animationseffekt von fadeIn() und fadeOut() besteht darin, ein- und auszublenden, was durch kontinuierliches Setzen des Opazitätsattributs des DOM-Elements erreicht wird, während fadeToggle() basiert darauf, ob das Element sichtbar ist. So entscheiden Sie über die nächste Aktion:

var p = $('#test-fade');
p.fadeOut('slow'); // 在0.6秒内淡出
Nach dem Login kopieren

Benutzerdefinierte Animation

Wenn der oben genannte Animationseffekt Ihre Anforderungen nicht erfüllen kann, verwenden Sie den letzten Ausweg: animate() , es kann erreicht werden Für jeden Animationseffekt müssen wir den endgültigen CSS-Status und die Zeit des DOM-Elements übergeben. jQuery passt das CSS innerhalb des Zeitraums kontinuierlich an, bis es den von uns festgelegten Wert erreicht:

var p = $('#test-animate');
p.animate({
  opacity: 0.25,
  width: '256px',
  height: '256px'
}, 3000); // 在3秒钟内CSS过渡到设定值
Nach dem Login kopieren

animate() ist OK. Übergeben Sie eine Funktion, die aufgerufen wird, wenn die Animation endet:

var p = $('#test-animate');
p.animate({
  opacity: 0.25,
  width: '256px',
  height: '256px'
}, 3000, function () {
  console.log('动画已结束');
  // 恢复至初始状态:
  $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');
});
Nach dem Login kopieren

Tatsächlich ist dieser Callback-Funktionsparameter auch auf einfache Animationen anwendbar.

Mit animate() können Sie verschiedene benutzerdefinierte Animationseffekte erzielen:

animate()

Serielle Animation

jQuery-Animationseffekte können auch seriell ausgeführt werden und durch die Methode „delay()“ angehalten. Auf diese Weise können wir komplexere Animationseffekte erzielen, aber der Code ist recht einfach:

var p = $('#test-animates');
// 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小
p.slideDown(2000)
  .delay(1000)
  .animate({
    width: '256px',
    height: '256px'
  }, 2000)
  .delay(1000)
  .animate({
    width: '128px',
    height: '128px'
  }, 2000);
}
</script>
Nach dem Login kopieren

Da die Animation für einen bestimmten Zeitraum ausgeführt werden muss, Daher muss jQuery kontinuierlich neue Promise-Objekte zurückgeben, um nachfolgende Vorgänge auszuführen. Es reicht nicht aus, Animationen einfach in Funktionen zu kapseln.

Warum manche Animationen keine Wirkung haben

Es kann sein, dass einige Animationen wie slideUp() überhaupt keine Wirkung haben. Dies liegt daran, dass das Prinzip der jQuery-Animation darin besteht, den CSS-Wert schrittweise zu ändern, z. B. die Höhe schrittweise von 100 Pixel auf 0 zu ändern. Aber für viele DOM-Elemente, die keine Blockelemente sind, hat das Festlegen der Höhe überhaupt keine Auswirkung, sodass die Animation keine Auswirkung hat.

Darüber hinaus implementiert jQuery den Animationseffekt von Hintergrundfarbe nicht und das Festlegen von Hintergrundfarbe mit animate() hat keine Auswirkung. In diesem Fall können Sie den CSS3-Übergang verwenden, um Animationseffekte zu erzielen.

Verwandte Empfehlungen:

Verwenden Sie Canvas, um ein Beispiel für eine Kurvenanimation zu zeichnen

JS und CSS, um die gemeinsame Nutzung von Animationseffekten im Web zu erreichen Seite wird geladen

Zwei Methoden von jQuery teilen, um den Animationseffekt einer Bildschiebetür zu realisieren

Das obige ist der detaillierte Inhalt vonMehrere in jQuery integrierte Animationsstile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage