[英]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.15
与e^(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.