2016-08-06 6 views
0

こんにちは皆私はフロントエンドの初心者ですので、視差スクロールは非常に興味深い領域です。 私はチュートリアルを見ていて、たくさんのものを読んでいますが、まだ私は初心者として提出しています。私は理解していないので、ここで、この例では関数を理解できませんJavascript

if (wScroll > $('.clothes-pics').offset().top - ($(window).height()/1.2)) { 

$('.clothes-pics figure').each(function(i){ 

setTimeout(function(){ 

    $('.clothes-pics figure').eq(i).addClass('is-showing'); 
    }, (300 * (Math.exp(i * 0.15))) - 700); 
    }); 

} 

(300 *(Math.expの(私は0.15を*))) - 700);: そして今、私はこれを持っていますそれ以前にコードを理解することはできますが、ここでは何が何であるのか分からず、本当に混乱しています。 誰かが私にそれを説明できるなら、私は非常に感謝します。
誰かが視差の良いチュートリアルを知っていれば、とても歓迎されます。 。

$(「服・写真の図。」):

+0

これは数学の式です... –

+0

視差のスクロールについてはあまりお伝えできませんが、そのコードは値i * 0.15の指数関数を計算する式です300を引いて、それから700を引く。 この操作の結果は、前のコードの実行をミリ秒単位で遅延させます**。 何がしているのかを理解するために、setTimeout関数のチュートリアルを見てください。 http://www.w3schools.com/jsref/met_win_settimeout.asp あなたは300と700を自分で設定しましたか、またはあなたが従う例に入っていましたか? –

答えて

0

演算部は、setTimeoutメソッド(関数(){

に属しそれがないすべてのシステムがこの行を実行する前に待機するミリ秒を計算しています.EQ(I).addClass( '-見せている');

Sauce

単純にカッコを追跡し、その(300 *(Math.expのを(私は0.15を*)))表示されます - 700)。は、setTimeout関数のパラメータです。ここで行う必要があるのは、Googleの関数であり、そのパラメータが何をするかを確認するだけです。 希望するもの:

2

setTimeout(callback, timeout)機能の値はtimeOutです。

Math.exp(i * 0.15)インデックスに応じて、I値であるe^(i * 0.15)、及びE同じであるi*0.15exponentは、Euler's numberである、ことを意味します。

timeOutを計算する興味深い方法。ここではあなたに大きなインデックス値は、そのtimeOutのために何を意味するのかのアイデアを与えるために(i) => { return (300 * (Math.exp(i * 0.15))) - 700); }の値のリストです:

1  =>  -351.449727182 
2  =>  -295.042357727 
3  =>  -229.506344353 
10  =>   644.506721101 
100  =>   980704511.742 
1,000 =>   4.1811287*(10^67) 

に基づいて、クラスを追加する前に、時間の(時にはマイナス)量を待つために非常に奇妙な方法基本的に要素インデックスです。

関連する問題