大家好,我是初学者,所以对我来说,视差滚动是非常有趣的领域,现在我开始学习它。 我正在观看教程并阅读很多内容,但我仍然是初学者。 现在我有了这个:
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%,但在这里我不知道什么是什么,我真的很困惑。
如果有人能向我解释,我将非常感激。
如果有人知道一些关于视差的好教程,那将非常受欢迎。
答案 0 :(得分:2)
它是timeOut
函数的setTimeout(callback, timeout)
值。
根据索引,Math.exp(i * 0.15)
表示i*0.15
e^(i * 0.15)
与timeOut
相同,其中 i 是值, e 是exponent。
计算(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)
的含义:
<input name="options" ng-control="options" type="radio" [value]="1" [(ngModel)]="model.options" ><br/>
<input name="options" ng-control="options" type="radio" [value]="2" [(ngModel)]="model.options" ><br/>
基本上在基于元素索引添加类之前等待(有时是负数)时间的一种非常奇怪的方法。
答案 1 :(得分:0)
计算部分属于setTimeout(function(){。
所有这一切都是计算系统在执行此行之前等待的毫秒数:
$('。clothes-pics figure')。eq(i).addClass('is-showing');
只需按下括号即可看到(300 *(Math.exp(i * 0.15)) - 700); 是setTimeout函数的参数,所有你需要的现在要做的就是谷歌的功能,看看该参数做了什么。 希望这会有所帮助:)