Achtung!

Dieser Artikel enthält PHP- und JavaScript-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keinen Support für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

So fügen Sie eine fallende Schneeanimation zu Ihrer Bestätigungsnachricht hinzu

Einleitung

Möchten Sie Ihrem Bestätigungsnachricht eine fallende Schneeanimation hinzufügen? Sie können der Bestätigungsnachricht ganz einfach eine Animation hinzufügen, die mit PHP und JavaScript eine interaktivere Wirkung erzielt. In diesem Tutorial werden wir jeden Schritt aufschlüsseln, wie Sie dies erreichen können.

Erstellen Ihres Formulars

Zuerst müssen Sie Ihr Formular erstellen. Zu diesem Zweck haben wir ein Bestellformular erstellt. Sobald die Bestellung abgeschlossen ist, wird eine Bestätigungsnachricht angezeigt, auf der unsere fallende Schneeanimation erscheint.

Wenn Sie Hilfe beim Erstellen Ihres Formulars benötigen, besuchen Sie bitte diese Dokumentation.

Sobald Sie Ihre Felder hinzugefügt haben, klicken Sie auf die Registerkarte Einstellungen und dann auf Bestätigungen. Im Fenster Bestätigungsnachricht werden wir ein HTML-Canvas-Element mit der ID canvas hinzufügen, damit wir genau bestimmen können, wo die Konfetti fallen werden.

Sobald Sie sich auf der Registerkarte Bestätigungen befinden, denken Sie daran, auf der Registerkarte Text in der Nachrichtenbox zu klicken. Sie müssen dies tun, um reines HTML in diesen Nachrichtenbereich einzufügen.

Um das Konfetti zur Bestätigung hinzuzufügen, müssen Sie der Bestätigungsnachrichtenbox auf der Registerkarte Text ein HTML-Canvas-Element hinzufügen.

Fügen Sie einfach <canvas id="canvas" /> hinzu

Durch das Hinzufügen dieses Canvas-Elements und der ID können wir steuern, wo dieser Schnee erscheint. Wir möchten, dass er nur in der Bestätigungsnachricht angezeigt wird, daher fügen wir ein Element hinzu, das wir in unserem Code-Snippet gezielt ansprechen können.

Dieses Snippet wird nur für Nicht-AJAX-Formulare ausgeführt. Sie müssten Ihre AJAX-Einstellungen im Formular-Generator deaktivieren. Um diese Einstellung zu deaktivieren, gehen Sie zur Registerkarte Einstellungen im Formular-Generator und deaktivieren Sie unter der Erweiterten Einstellung die Einstellung AJAX-Formularübermittlung aktivieren.

Denken Sie daran, AJAX vor dem Speichern des Formulars zu deaktivieren

Hinzufügen des CSS für den Canvas-Wrapper

Wir müssen auch benutzerdefiniertes CSS für den <canvas id="canvas" />-Wrapper hinzufügen. Wenn Sie Hilfe benötigen, wie und wo Sie benutzerdefiniertes CSS hinzufügen können, sehen Sie sich dieses Tutorial an. Kopieren und fügen Sie dieses CSS einfach auf Ihrer Website ein.

canvas#canvas {
    position: absolute;
    top: 0;
    left: 0;
}

Hinzufügen des Code-Snippets zur Erstellung des Schnees

Jetzt ist es an der Zeit, das Code-Snippet hinzuzufügen, das die Magie bewirkt. Für jede Unterstützung beim Hinzufügen eines Snippets zu Ihrer Website sehen Sie bitte dieses Tutorial.

/**
 * Add falling snow to the canvas element on the confirmation message
 *
 * @link  https://wpforms.com/developers/how-to-add-falling-snow-animation-to-your-confirmation-message/
 */
 
function wpf_dev_winter_scene_animation() {
?>

<script type="text/javascript">
    //If the canvas ID does not exist on the page, this script will not run

    if (document.querySelector( '#canvas' ) !== null) {
//canvas init
	var canvas = document.getElementById( "canvas" );
	var ctx = canvas.getContext( "2d" );
	
	//canvas dimensions
	var W = window.innerWidth;
	var H = window.innerHeight;
	canvas.width = W;
	canvas.height = H;
	
	//snowflake particles
	var mp = 50; //max particles
	var particles = [];
	for(var i = 0; i < mp; i++)
	{
		particles.push({
			x: Math.random()*W, //x-coordinate
			y: Math.random()*H, //y-coordinate
			r: Math.random()*4+1, //radius
			d: Math.random()*mp //density
		})
	}
	
	//Lets draw the flakes
	function draw()
	{
		ctx.clearRect(0, 0, W, H);
		
		ctx.fillStyle = "white";
		ctx.beginPath();
		for(var i = 0; i < mp; i++)
		{
			var p = particles[i];
			ctx.moveTo(p.x, p.y);
			ctx.arc(p.x, p.y, p.r, 0, Math.PI*2, true);
		}
		ctx.fill();
		update();
	}
	
	//Function to move the snowflakes
	//angle will be an ongoing incremental flag. Sin and Cos functions will be applied to it to create vertical and horizontal movements of the flakes
	var angle = 0;
	function update()
	{
		angle += 0.01;
		for(var i = 0; i < mp; i++)
		{
			var p = particles[i];
			//Updating X and Y coordinates
			//We will add 1 to the cos function to prevent negative values which will lead flakes to move upwards
			//Every particle has its own density which can be used to make the downward movement different for each flake
			//Lets make it more random by adding in the radius
			p.y += Math.cos(angle+p.d) + 1 + p.r/2;
			p.x += Math.sin(angle) * 2;
			
			//Sending flakes back from the top when it exits
			//Lets make it a bit more organic and let flakes enter from the left and right also.
			if(p.x > W+5 || p.x < -5 || p.y > H)
			{
				if(i%3 > 0) //66.67% of the flakes
				{
					particles[i] = {x: Math.random()*W, y: -10, r: p.r, d: p.d};
				}
				else
				{
					//If the flake is exitting from the right
					if(Math.sin(angle) > 0)
					{
						//Enter from the left
						particles[i] = {x: -5, y: Math.random()*H, r: p.r, d: p.d};
					}
					else
					{
						//Enter from the right
						particles[i] = {x: W+5, y: Math.random()*H, r: p.r, d: p.d};
					}
				}
			}
		}
	}
	
	//animation loop
	setInterval(draw, 25);

    }
</script>

<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_dev_winter_scene_animation', 1);

Jetzt sehen Sie die Konfetti-Animation, wenn die Bestätigungsnachricht angezeigt wird.

Und das ist alles, was Sie brauchen! Sie haben nun erfolgreich eine fallende Schneeanimation zu Ihrer Bestätigungsnachricht hinzugefügt. Möchten Sie stattdessen Konfetti hinzufügen? Sehen Sie sich unser Tutorial an So fügen Sie eine Konfetti-Animation zur Bestätigungsnachricht hinzu.

Aktionsreferenz: wpforms_wp_footer_end