一、哟,requestAnimationFrame, 新同学,先自我介绍下
想到明天就是国庆大假,今天我就小人不记大人过。给你们来副震精的图: 相当一部分的浏览器的显示频率是 囊爹(なんでよ)? 国庆北京高速,最多每 同样的,显示器 这也是为何 而我 内部是这么运作的: 这是资源非常高效的一种利用方式。怎么讲呢?
肿么样?
我说小美女,据我所知,CSS3 二、反击吧,requestAnimationFrame同学
看你们那副呆若木鸡的表情就知道了,IE10 CSS3实现,IE9-之流JS var handle = setTimeout(renderLoop, PERIOD);
var handle = requestAnimationFrame(renderLoop);
我 So,如果想要简单的兼容,可以这样子: window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
但是呢,并不是所有设备的绘制时间间隔是 (function() {
var lastTime = 0;
var vendors = ['webkit', 'moz'];
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; x) {
window.requestAnimationFrame = window[vendors[x] 'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x] 'CancelAnimationFrame'] || // Webkit中此取消方法的名字变了
window[vendors[x] 'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame) {
window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
var id = window.setTimeout(function() {
callback(currTime timeToCall);
}, timeToCall);
lastTime = currTime timeToCall;
return id;
};
}
if (!window.cancelAnimationFrame) {
window.cancelAnimationFrame = function(id) {
clearTimeout(id);
};
}
}());
上JS可点击这里下载。 然后,我们就可以以使用
2. CSS3动画不能应用所有属性 比方说点下面这个按钮,滚上去再滚下来,哈哈~
3. CSS3支持的动画效果有限 下面这张图瞅瞅,那些波澜壮阔的曲线都是CSS3木有的~~ 咋办,咋办?只能是JS实现啦,于是,本大人我
每个效果都分三个缓动方式,分别是(可采用后面的邪恶记忆法帮助记忆):
每周动画效果都有其自身的算法。我们都知道jQuery UI中就有缓动,As脚本也内置了缓动,其中的运动算法都是一致的。我特意弄了一份,哦呵呵呵~~(因为较高,滚动显示),或GitHub访问: |
|
来自: 潇湘雨plgwyaef > 《待分类》