• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptのソースでvar result = c * (t)

JavaScriptのソースでc * (t /= d) * t + bという関数は何を計算しているのでしょうか?

このQ&Aのポイント
  • JavaScriptのソースコードにあるsmoothEaseIn関数は、t, b, c, dという4つの引数を受け取ります。
  • smoothEaseIn関数の計算式は、c * (t /= d) * t + bとなっており、tの値をdで割り、それにcをかけた後、さらにtをかけ、最後にbを加えています。
  • 具体的な計算内容に関しては、ソースコード上の他の部分や該当する関数がどのように使用されているかを見る必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • my--
  • ベストアンサー率89% (91/102)
回答No.1

mov2.setTween(smoothEaseIn, 100); .setTweenはwrapScroll.prototypeに設定されているメソッドですが //wrapscroll.jsの断片  setTween: function(f,d){   if(f){    this.tween=f;   }   if(d){    this.Duration=d;   }  },  tween: function(t,b,c,d){   return c * (t /= d) * t + b;  } 渡された引数をmov2.tween, mov2.Durationに代入してます。プロパティー追加メソッドですね。 Durationのデフォルト値は60ですが、smoothEaseIn関数はあらかじめ用意されてる tweenメソッドとまったく同じ処理ですから mov2.setTween(false, 100); こう書けます。 //wrapscroll.jsの断片 o.e.style.top = t.tween(t._timer++, s, e - s, t.Duration, o.e.style) + 'px'; tweenメソッドはタイマーで呼ばれ続けます。スムースに移動させる肝ですね。 それぞれの値ですが、_timerは実行ごとに1増えるカウンタ。 sは位置設定する要素の配置位置(obj.offsetTop)。eは表示領域上端位置(スクロール量)。 DurationはsetTweenに渡した100。 o.e.styleはオプション。デフォルトでは使われてませんね。 まとめると。 c * (t /= d) * t + b; 表示領域上端と要素位置との差 * (カウンタ /= 100) * カウンタ + 要素位置; 誤読がなければこのように読めるかと。 //単純にした式 smoothEaseIn = function(t, b, c, d, s){ return b + c; //要素位置 + 表示領域上端と要素位置との差 }

ritzkun
質問者

お礼

非常にわかりやすい説明ありがとうございました!! めちゃくちゃわかりやすかったです☆参考にさせていただきます☆ ありがとうございました!

関連するQ&A