IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

超短い 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>

シンプルじゃないっすか?

どうだろ?