リスティング広告 運用代行サービス|株式会社カルテットコミュニケーションズ|Yahoo広告/Google広告正規代理店

jQuery.animate() を利用して、オブジェクトのプロパティをgetter/setterで書き換える方法

公開日:
更新日:

javascriptでもoopが行われる事が一般的になってきた今日ですが、
jQuery.animate()でstyleプロパティを書き換えるように、インスタンスのメソッドをコールしたい事はありませんでしたか?

通常の方法(プロパティ書き換え)

今回は例として「犬オブジェクト」を定義して使用します。

[javascript]
// 走らせるメソッドを持った犬オブジェクトを定義する。
var dog = {
position: 0,
runto: function(position) {
this.position = position;
}
};
[/javascript]

下記の通りjQuery.animate()を利用して、プロパティの書き換えは何事もなく行えます。

[javascript]
// プロパティの書き換えは可能
console.log(dog.position); // => 0
$(dog).animate({position:1000}, function(){
console.log(dog.position); // => 1000
});
[/javascript]

今回の方法(getter/setterを利用)

通常の方法と同じように実行してしまうと、下記の通りメソッドがパラメータで上書きされてしまい期待した動作になりません。

[javascript]
$(dog).animate({runto:1000});
console.log(dog.runto); // => 1000
[/javascript]

$.Tween.propHookの利用

そこで$.Tween.propHookにメソッドを使う事を定義します。

[javascript]
$.Tween.propHooks.runto = {
get: function(tween) {
return tween.elem.position;
},
set: function(tween) {
tween.elem.runto(tween.now);
}
};
[/javascript]

$.Tween.propHookを定義する事で jQuery.animate()によるメソッドのコールが行えた事が分かります。

[javascript]
// メソッドコールによるプロパティ書き換えが可能になります。
console.log(dog.position); // => 0
$(dog).animate({runto:1000}, function(){
console.log(dog.position); // => 1000
})
[/javascript]

実際にこの方法は、window.scrollTo()メソッドを呼び出して滑らかにスクロールさせる際に利用されていますので、その様なケースの際には是非利用してみてはいかがでしょうか。

1営業日以内に返信いたします 広告の運用代行についてのお問い合わせはこちら
シェアする

ブログ記事の中で広告運用の事例をご紹介することがありますが、実際の事例を一部加工した内容となっておりますのでご留意ください。

また、2018年7月24日よりGoogle AdWordsはGoogle広告に名称変更されました。それ以前の記事に関してはGoogle AdWordsと表記されておりますのでご了承ください。


リスティング広告の
情報をお届け

メルマガではリスティング広告に詳しくなれる記事を毎週一週間分まとめてお届けします。不定期にはなりますがリスティング広告に限らず、Web集客改善に繋がる資料もお送りしていきますので、興味のある方はぜひご登録ください。

同じカテゴリの最近の記事