所以有一段时间我一直在离开jQuery,一般只是减少我的库使用在哪里 - 每个可能的a)编写更精简的代码,和b)真正理解在低级别发生的事情,特别是用户界面。虽然我已经将我的大部分UI动画移动到了CSS3,但是当你需要更多控制时,通常需要更多的控制,但对于一个小动画,我宁愿不要总是拉入velocity.js或greensock等。 / p>
看着你 - 可能不需要-jquery有一个fadeIn函数,它们演示的内容如下:
function fadeIn(el) {
el.style.opacity = 0;
var last = +new Date();
var tick = function() {
el.style.opacity = +el.style.opacity + (new Date() - last) / 400;
last = +new Date();
if (+el.style.opacity < 1) {
(window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
}
};
tick();
}
fadeIn(el);
我通常理解这个功能,但对非常具体的项目有一些问题:
+
和new Date()
之前的el.style.opacity
是什么? 8表示?是+=
吗?如果我理解这种模式背后的概念:
这是对的吗?
答案 0 :(得分:3)
+
是强制将某个值解释为数字的快捷方法。400
除以代码设置淡入率的方式。较大的数字会使渐变变长,而较小的数字会使速度变快。该数字给出了元素完全不透明之前经过的毫秒数(或多或少)。setTimeout()
或requestAnimationFrame()
),但是当计时器触发时,原始调用将退出。