Attention !

Cet article contient du code PHP et JavaScript et s'adresse aux développeurs. Nous proposons ce code à titre gracieux, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Comment ajouter une animation de neige tombante à votre message de confirmation

Introduction

Souhaitez-vous ajouter une animation de neige tombante à votre message de confirmation ? Vous pouvez facilement ajouter une animation au message de confirmation qui aurait un effet plus interactif en utilisant PHP et JavaScript. Dans ce tutoriel, nous allons détailler chaque étape pour y parvenir.

Création de votre formulaire

Tout d'abord, vous devrez créer votre formulaire. Aux fins de ce tutoriel, nous avons créé un formulaire de commande. Une fois la commande terminée, un message de confirmation s'affichera sur lequel notre animation de neige tombante apparaîtra.

Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter cette documentation.

Une fois que vous avez ajouté vos champs, cliquez sur l'onglet Paramètres, puis sur Confirmations. Dans la fenêtre Message de confirmation, nous allons ajouter un élément de canevas HTML avec un ID de canvas afin de pouvoir cibler exactement où les confettis tomberont.

Une fois dans l'onglet Confirmations, n'oubliez pas de cliquer sur l'onglet Texte dans la zone de message. Vous devrez le faire afin d'ajouter du HTML pur dans cette zone de message.

Pour ajouter les confettis à la confirmation, vous devez ajouter un élément de canevas HTML à la boîte de message de confirmation dans l'onglet Texte.

Ajoutez simplement <canvas id="canvas" />

L'ajout de ce canevas et de cet ID nous permet de contrôler où cette neige apparaîtra. Nous voulons qu'elle ne s'affiche que dans le message de confirmation, nous ajoutons donc un élément que nous pouvons cibler spécifiquement dans notre extrait de code.

Cet extrait ne s'exécute que sur les formulaires non-AJAX. Vous devrez désactiver vos paramètres AJAX dans le constructeur de formulaires. Pour désactiver ce paramètre, allez dans l'onglet Paramètres du constructeur de formulaires et, sous le paramètre Avancé, désactivez le paramètre Activer la soumission de formulaire AJAX.

n'oubliez pas de désactiver AJAX avant de sauvegarder le formulaire

Ajout du CSS pour le wrapper du canevas

Nous devons également ajouter du CSS personnalisé pour le wrapper de <canvas id="canvas" />. Si vous avez besoin d'aide sur comment et où ajouter du CSS personnalisé, veuillez consulter ce tutoriel. Copiez et collez simplement ce CSS sur votre site.

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

Ajout de l'extrait de code pour créer la neige

Il est maintenant temps d'ajouter l'extrait de code qui fera la magie. Pour toute aide sur l'ajout d'un extrait à votre site, veuillez consulter ce tutoriel.

/**
 * 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);

Vous verrez maintenant l'animation de confettis lorsque le message de confirmation s'affichera.

Et c'est tout ce dont vous avez besoin ! Vous avez maintenant ajouté avec succès une animation de neige tombante à votre message de confirmation. Souhaitez-vous ajouter des confettis à la place ? Consultez notre tutoriel sur Comment ajouter une animation de confettis au message de confirmation.

Référence d’action : wpforms_wp_footer_end