ご注意!

この記事にはCSSとJavaScriptのコードが含まれており、開発者向けです。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートしていません。

追加のガイダンスについては、WPBeginnerのカスタムコードカスタムCSSの追加に関するチュートリアルを参照してください。

閉じる

確認メッセージに落ち葉を追加する方法

はじめに

フォームが送信されたときに、確認メッセージに落ち葉を追加することに興味がありますか?このチュートリアルでその方法を説明します!

以前のチュートリアルでは、フォームが送信されたときに落ちてくる紙吹雪と花火を追加する方法を説明しました。このチュートリアルは、いくつかの追加ステップで同様のアプローチに従います。

フォームの作成

始めるには、新しいフォームを作成し、目的のフィールドを追加してください。このステップでサポートが必要な場合は、このドキュメントを参照してください

フォームを作成し、フィールドを追加します

確認設定の設定

落ち葉のアニメーションを取得するには、確認メッセージにいくつかの変更を加える必要があります。これを行うには、設定をクリックし、確認を選択します。次に、次のステップで確認メッセージの下にHTML要素を追加するため、テキストタブをクリックします。

設定をクリックし、次に確認メッセージを変更するために確認をクリックします。そこに、次のステップからHTMLを追加するためにテキストタブをクリックします

確認メッセージにHTMLを追加する

これで、確認メッセージにHTMLを含める準備ができました。次のコードをメッセージボックスにコピー&ペーストしてください。

<p>Thanks for your feedback!</p>

<canvas id="canvas" />
<img id="leaf" src="http://mysite.com/path-to-image" />

上記のHTMLを確認メッセージのテキストタブに追加します

このチュートリアルでは、単一の葉を使用し、それをキャンバス領域のランダムな場所に連続して落とします。落ち葉

葉をアップロードした場所に合わせて、画像のソースを変更する必要があります。

落ち葉のスニペットを追加する

これで、これらすべてをまとめるコードを追加する時間です。サイトにコードスニペットを追加するのに役立つ場合は、このチュートリアルを確認してください。

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

	<script type="text/javascript">
	let canvas = document.querySelector('canvas');
	let ctx = canvas.getContext('2d');

	canvas.width = document.body.clientWidth;
	canvas.height = document.body.clientHeight;

	let width = canvas.width;
	let height = canvas.height;
	let centerX = canvas.width / 2;
	let centerY = canvas.height / 2;
	let leaf = document.querySelector('#leaf');
	let leafs = [];
	let count = 200;

	for (let i = 0; i < count; i++) {  
	  let angle = 15 + Math.random() * 30
	  let dir = [-1,1][Math.floor(Math.random() * 2)];

	  leafs.push({
		x: Math.random() * width,
		y: Math.random() * height,
		w: 30,
		h: 30 * (leaf.height / leaf.width),
		v: 20 / angle,
		a: angle,
		d: dir,
		anim: true
	  });
	}

	function update(dt) {
	  for (let i = 0; i < leafs.length; i++) {
		if (leafs[i].anim) {
		  leafs[i].y += leafs[i].v;

		  if (leafs[i].y > height) {
			leafs[i].y = -120;
			leafs[i].x = Math.random() * width;
		  }
		}
	  }
	}

	function draw(dt) {
	  requestAnimationFrame(draw);
	  update(dt);

	  ctx.clearRect(0, 0, width, height);

	  for (let i = 0; i < leafs.length; i++) {
		ctx.save();

		if (leafs[i].anim) {
		  ctx.translate(leafs[i].x, leafs[i].y);

		  ctx.rotate(
			leafs[i].d * Math.sin(dt * 0.002 * i * 0.01) * (leafs[i].a) * Math.PI / 180
		  ); 
		} 

		ctx.globalAlpha = Math.max(0, leafs[i].y * 0.1);
		ctx.drawImage(leaf, -leafs[i].w / 2, 70, leafs[i].w, leafs[i].h);

		ctx.restore();
	  }
	}

	draw();
	</script>
<?php
}
add_action( 'wpforms_wp_footer_end', 'wpf_falling_autumn_leaves_animation', 1);

上記のコードスニペットで注意すべき重要な設定はlet count = 200;です。この設定は、画面に表示される落ち葉の量を決定します。この数値を増やすと葉が多く表示され、減らすと葉が少なくなります。

CSSを追加する

このチュートリアルでは、キャンバスに1つのCSSルールを追加します。

サイトによっては、さらにCSSが必要になる場合があります。ヘルプが必要な場合やさらに質問がある場合は、いつでもFacebookコミュニティに参加して質問したり、サポートを受けたりできます。

canvas {
    display: block;
    position: absolute !important;
    top: 0;
	left: 0;
}

CSSを追加する場所や方法についてヘルプが必要な場合は、このチュートリアルを参照してください

これらの手順がすべて完了し、ユーザーがフォームを送信すると、確認メッセージの上に落ち葉が表示されます。

JavaScriptとcanvas要素を使用したアニメーション付きの落ち葉

これで完了です!確認メッセージに紙吹雪を追加するチュートリアルをまだ見ていない場合は、確認メッセージに紙吹雪アニメーションを追加する方法のチュートリアルを必ず確認してください。

アクション参照: wpforms_wp_footer_end