超短い JavaScript Effect ライブラリ
ちょっと急用で実家の金沢に帰ってきた
ついでに夏休みを取り、金沢の街を満喫しています。いつ来ても変わらない街。仕事のことなんか忘れて、この街でフリータでもしながら、ほそぼそと生活するのもありかもしれない。なんて。本気で考えてみたり。幸せってなに・・・
クーラーがなくても、田舎の夜は涼しい。
扇風機の風がいい感じ。
そんな夜に少し閃いて Effect ライブラリを作ってみた。
(ちなみに、Geckoしか動かなそう:未検証)
(e=document.documentElement.__proto__.__proto__).effect=function(f,d){var s=this;s._i=setInterval(function(){f.call(s)},d)};e.stop=function(){if(this._i){clearInterval(this._i);delete this._i;}};
わかりやすく書くとこんな感じ
var elementPrototype = document.documentElement.__proto__.__proto__; elementPrototype.effect = function(func, delay) { var element = this; element._intervalId = setInterval(function(){ func.call(element) }, delay); }; elementPrototype.stop = function(){ var element = this; if(element._intervalId){ clearInterval(element._intervalId); delete element._intervalId; } };
使いかた
<div style="opacity:1" onclick="effect(function(){style.opacity-=0.1; if(!style.opacity)stop()},40)"></div>
シンプルじゃないっすか?
どうだろ?