jQuery: 要素の背景色を変更する

Habdul Hazeez 2023年6月21日
  1. jQuery queue() API を使用して背景色を変更する
  2. hide() API を使用した jQuery の背景色の変更
jQuery: 要素の背景色を変更する

この記事では、jQuery を使用してマウスオーバー時に要素の背景色を変更する方法について説明します。 queue()hide() という 2つの jQuery API を使用してこれを実現します。

jQuery queue() API を使用して背景色を変更する

この最初の例は、アニメーションの前後で背景色を変更します。 ここでは、css() API だけでは意図したとおりに機能しないため、queue() API が必要になります。

これは、アタッチされた要素に即座に影響を与えるためです。 queue() API を使用すると、css() API の結果の後にエフェクトを起動する関数を渡すことができます。

これは、css() の初期色がアニメーションの開始時に影響を与えることを意味します。 その後、queue() API を使用して、初期色を別の色に変更できます。

以下は、プロセスの疑似コードです。

  1. ボタンの上にマウスを置くと、css() API の初期色が有効になります。
  2. 要素がフェードアウトします。
  3. 要素が再び表示されます。
  4. 最後に、その色が queue() API で定義された別の色に変わります。

次のコードは、疑似コードの実装です。 次に示すのは、Web ブラウザーでの結果です。

その結果、2 回目にマウスをボタンの上に置いたときにアニメーションが発生しないことがわかります。 これについては、次の例で説明します。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>01-jQuery-change-background-color-with-queue-API</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
	<style>
		body { display: grid; justify-content: center; align-items: center; height: 100vh; }
		main { border: 3px solid #1a1a1a; padding: 1.2em; display: grid; }
		button { align-self: center; padding: 1.2em; cursor: pointer; }
		p { font-size: 5em; }
	</style>
</head>
<body>
	<main>
		<p id="random_big_text">A big random text.</p>
		<button>Move your mouse here.</button>
	</main>
	<script>
		$(document).ready(function() {
			$("button").mouseover(function() {
				let random_big_text = $("#random_big_text");
				random_big_text.css("background-color", "#ffff00");
				random_big_text.hide(1500).show(1500);
				random_big_text.queue(function() {
					random_big_text.css("background-color", "#ff0000");
				});
			});
		});
	</script>
</body>
</html>

出力:

jQuery キュー API を使用して背景色を変更する

hide() API を使用した jQuery の背景色の変更

jQuery hide() API を使用して背景色を変更する方法は、queue() API を使用した最初の例に基づいています。 結果は同じですが、2つの違いがあります。 API チェーンを使用しており、その効果は毎回機能します。

その結果、各アニメーションの最後にあるボタンにマウスを合わせると、プロセスが最初からやり直されます。 次のコードは、その方法を示しています。 以下は、Web ブラウザーでの結果です。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>02-jQuery-change-background-color-with-hide-API</title>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
	<style>
		body { display: grid; justify-content: center; align-items: center; height: 100vh; }
		main { border: 3px solid #1a1a1a; padding: 1.2em; display: grid; }
		button { align-self: center; padding: 1.2em; cursor: pointer; }
		p { font-size: 5em; }
	</style>
</head>
<body>
	<main>
		<p id="random_big_text">A big random text.</p>
		<button>Move your mouse here.</button>
	</main>
	<script>
		$(function(){
			$("button").mouseover(function(){
				let random_big_text = $("#random_big_text");
				random_big_text.stop()
			      .css("background-color","#ffff00")
			      .hide(1500, function() {
			          random_big_text.css("background-color","#ff0000")
			            .show(1500);
			      });
			  });
		});
	</script>
</body>
</html>

出力:

jQuery hide API を使用して背景色を変更

著者: Habdul Hazeez
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn