繁体   English   中英

无法理解函数Javascript

[英]Can't understand function 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(i * 0.15))-700); 代码之前我可以理解85%,但是在这里我不知道什么是什么,我真的很困惑。 如果有人可以向我解释,我将非常感激。
而且,如果有人知道一些关于视差的好教程,那将是非常受欢迎的。

它是setTimeout(callback, timeout)函数的timeOut值。

Math.exp(i * 0.15)表示,取决于索引, 指数 i*0.15e^(i * 0.15) ,其中i是值, e欧拉数

计算timeOut有趣方法。 这是(i) => { return (300 * (Math.exp(i * 0.15))) - 700); } (i) => { return (300 * (Math.exp(i * 0.15))) - 700); }给你一个什么样的指数值越大,对于一个想法timeOut

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

基本上,在添加基于元素索引的类之前,等待(有时是负数)时间的一种非常奇怪的方法。

计算部分属于setTimeout(function(){。

它所做的只是计算系统在执行此行之前将等待的毫秒数:

$('。clothes-pics Figure')。eq(i).addClass('is-showing');

只需按照括号进行操作,您会看到(300 *(Math.exp(i * 0.15))-700); 是setTimeout函数的参数,您现在要做的就是谷歌搜索该函数并查看该参数的作用。 希望这可以帮助 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM