Skip to content

yap-house/jquery-bezierCurve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#jQuery.bezierCurve

jQuery.bezierCurveはjQueryのanimateメソッドを拡張して、曲線的な動きを再現するプラグインです。
デモページ

##ブラウザ対応状況 メソッドのいくつかはIE9以上の対応になりますが、基本的な動作はIE8以下でも確認済みです。
IE8以下で動作しないメソッドは下記の[メソッド]項目で記述します。

##使い方 まず動かしたい要素を絶対配置で指定します。

<style>
#hoge-wrap {
  position: relative;
}

#hoge {
  position: absolute;
}
</style>

<div id="hoge-wrap">
  <div id="hoge"></div>
</div>

$.bezierCurveの第一引数にスタート地点のX座標、第二引数にY座標を指定します。
※引数の指定は必須です。
addPointメソッドで座標を追加していき、animateメソッドでbezierPathを実行します。

var path = $.bezierCurve(x, y)
  .addPoint(x, y)
  .addPoint(angle, length, true)
  .addPoint(x, y);

  $("#hoge").animate({bezierPath: path}, duration, easing, callback);

$.bezierCurveはaddPointメソッドで追加された座標を格納し、animateを実行した際に、格納した座標をもとにN次ベジェ曲線の公式を用いて曲線的なパスを生成します。
$.bezierCurveの詳細についてはデモページに記載してありますので、詳しくはデモページをどうぞ。
デモページ: How to use

※addPointについては下記のメソッド項目にて詳細を記述します。

##メソッド ここでは$.bezierCurveのメソッドを一つずつ紹介いたします。
ここでの説明は簡易的なものになりますので、詳しくはデモページのMethod項目をご覧ください。

###addPoint $.bezierCurveを動作させるのに必須のメソッドになります。
このメソッドを指定しなかった場合、$.bezierCurveは引数で指定した位置から動作することはありません。

指定の仕方は下記になります。

$bezierCurve(x, y).addPoint(a, b, is_angle);

第三引数is_angleが空、もしくはfalseの場合、第一引数aはX座標、第二引数bはY座標での指定となります。
第三引数is_angleがtrueの場合、$.bezierCurveの引数に指定したスタート地点の座標を基点として、第一引数aを角度、第二引数bを距離で指定することができます。

$.bezierCurve(x, y)
  .addPoint(x, y) //is_angleが空なので、第一引数がX座標、第二引数がY座標
  .addPoint(angle, length, true) //is_angleがtrueなので第一引数が角度、第二引数が距離

詳しくはデモページのaddPointをご覧ください。

###reverse $.bezierCurveで生成したパスをそのまま反転させます。

var path = $.bezierCurve(x, y)
  .addPoint(x, y)
  .addPoint(angle, length, true)
  .addPoint(x, y);

$("#hoge").animate({bezierPath: path}, duration, easing, callback)
  .animate({bezierPath: path.reverse()}, duration, easing, callback);

詳しくはデモページのreverseをご覧ください。

###rotate $.bezierCurveで生成したパスの進行方向に合わせて、要素の角度を変えることができます。
※IE9以上の対応メソッドです。
IE8以下で使用した場合は無視されます。

var path = $.bezierCurve(x, y)
  .addPoint(x, y)
  .addPoint(angle, length, true)
  .addPoint(x, y);

$("#hoge").animate({bezierPath: path.rotate()}, duration, easing, callback)
  .animate({bezierPath: path.reverse().rotate()}, duration, easing, callback);

詳しくはデモページのrotateをご覧ください。

###canvasSimulator $.bezierCurveで指定した座標位置と生成したパスを、HTML5のcanvasを使用することで視覚的に確認ができます。
※canvasの使える環境のみになりますので、IE8以下では動作しません。

var path = $.bezierCurve(x, y)
  .addPoint(x, y)
  .addPoint(angle, length, true)
  .addPoint(x, y);

$("#hoge").animate({bezierPath: path.canvasSimulator($("#hoge-wrap"))}, duration, easing, callback);

引数にはアニメーションさせる要素の基準となる親要素(position: relative or absolute)の要素を指定。
※引数の指定は必須になります。

詳細はデモページのcanvasSimulatorをご覧ください。

##ライセンスについて MITで配布になりますので、なにか使い道がありましたら商用でもご自由にお使いください。

当プラグインを利用して発生した障害などについては、MITでの配布のため、一切の責任を負いませんので、ご了承の上ご利用ください。

About

jQuery animate 拡張プラグイン

Resources

License

Stars

Watchers

Forks

Packages

No packages published