您不能.delay()
用于 CSS 属性。相反,您可以尝试使用该setInterval()
函数根据您想要的一组预定义转换逐步向您的元素添加转换。我在这里做了一个小提琴 - http://jsfiddle.net/teddyrised/5AqCm/
这个答案是在您最终想要缩放和倾斜元素的最终状态的假设下做出的。
让我稍微解释一下我的代码:
$(document).ready(function () {
var $spce = $("#space"),
trsfm = [], // Declare empty array for transforms
delay = 1000, // Set delay in ms
count = 0; // Set iteration count
// Declare a stepwise array where you want the transform to occur
trsfm = ['scale(2,3)', 'skew(30deg,20deg)'];
var timer = window.setInterval(function () {
if(count < trsfm.length) {
// Increase count by 1
count += 1;
// Stepwise addition of transforms
var trsfmStep = trsfm.slice(0, count).join(' ');
$spce.css({
'-moz-transform': trsfmStep,
'-o-transform': trsfmStep,
'-webkit-transform': trsfmStep,
'transform': trsfmStep
});
// Log in the console, just for fun
console.log(trsfmStep);
} else {
// If you have iterated through all the transforms, clear interval
window.clearInterval(timer);
console.log('Timer cleared.');
}
}, delay);
});
我已经定义了延迟,1000 毫秒(当然你可以改变它),并且还使用了一个数组来存储你想要应用的所有转换。变换以从左到右的逐步方式应用,从比例开始,然后到倾斜。
设置定时器,开始计数。每次达到间隔时,脚本都会检查您是否已经遍历了变换数组。如果不是,它将逐步添加变换,方法是从一开始就加入数组中的项目,但在您所处的任何一步停止(使用.slice()
)方法:)