ywork2020.com

Title

アニメーションの持続時間をキーワードで一元管理する

目次 (INDEX)

fx.speedsとは

ここで説明する fx.speeds とは次の語句からなるjQueryのプロパティです。
fx
読み: エフエックス
意味: effects (エフェクツ, エフェクト) の短縮類似発音語。「効果」の意味。
speed
読み: スピード
意味: 速度、速さ

目次に戻る

speedsプロパティの概要

このプロパティは、全てのアニメーションに関わる速度キーワードの値を変更することができます。 また、新たな速度キーワードを追加し、値を設定することもできます。

このプロパティに設定できる値はオブジェクト型であり、キーとデュレーション値が対になっている必要があります。 デュレーション値には、ミリ秒単位の数値を指定します。

ただし、本プロパティの設定を反映させるには、実行中のアニメーションがあれば、それを停止する必要があります。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

jQuery.fx.speeds = {key : duration [, key : duration]...}
  • key : 既存、または 任意のプロパティ名を指定します。
  • duration : アニメーションに費やす時間をミリ秒単位の数値で指定します。

目次に戻る

サンプルコードと実行結果

ここでは fx.speeds を使用して、アニメーションに関わるデュレーションキーワードが持つ値を変更します。

デュレーションに指定できるキーワードには slow や fast というのは、元々にありますが、 ここではその値を変更し、更に medium と none というキーワードを追加、設定して使用しています。

サンプルコード: CSS
<style>
	#idDiv{
		position: relative;
		left: 0;
		top: 0;
		background-color: ##lightgreen;
		border: thin solid ##lightgray;
		padding: 19px;
		height: 80px;
		width: 80px;
	}
</style>
サンプルコード: HTML
<head>
	<style>...</style>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
	<div id="idDiv"> Element </div>
	<button id="idButton"> run animation </button>
	<script>...</script>
</body>
  • 06: div id="idDiv" (この要素がアニメーションします。)
  • 07: button id="idButton" (アニメーションを開始する為のボタンです。)
サンプルコード: script
<script>
	$.fx.speeds = {slow:2000, medium:1000, fast:500, none:0};
	$("#idButton").click(function(){
		$("#idDiv").animate({"left":"150px"}, "slow", "linear");
		$("#idDiv").animate({"left":"300px"}, 1000, "linear");
		$("#idDiv").animate({"left":"450px"}, "fast", "linear");
		$("#idDiv").animate({"left":"300px"}, "medium", "linear");
		$("#idDiv").animate({"left":"150px"}, "slow", "linear");
		$("#idDiv").animate({"left":"0"}, "none", "linear");
	});
</script>
  • 02: $.fx.speeds = {slow:2000, medium:1000, fast:500, none:0} ("slow" というキーワードを 2000 ミリ秒に設定しています。"medium" というキーワードを 1000 ミリ秒に設定しています。以後省略します。)
  • 03-10: $("#idButton").click(function(){関数の処理}) (idButton の要素がクリックされると 関数の処理 を実行します。)
  • 04, 05, 06, 07, 08, 09: $("#idDiv").animate() (各 animate()メソッドの引数にデュレーションのキーワードが設定されています。)
実行結果:
Element

アニメーションをご覧になってお分かりいただけたでしょうか。 要素は設定したデュレーションの値を移動の持続時間としているので、移動速度に変化があったと思います。

目次に戻る