我正在尝试通过使用jQuery.animate设置其css属性的动画来移动div(itemEl)。我让代码在plunker(http://plnkr.co/edit/29GCU1D2eFebEpFFf96Q?p=preview)中工作,但在尝试将其移植到我的项目时,动画就破了。也就是说,div实际上被移动到正确的位置,但这会立即发生,而不是随着时间的推移。这是我的指令控制器的摘录:
// draw item in fixed position
itemEl.css({
position :'absolute',
top : itemElPos.top,
left : itemElPos.left,
width : itemElDim.width,
height : itemElDim.height,
});
// move item to overlap mainItem
var animationPointer = itemEl.animate({
position : 'absolute',
top : mainItemElPos.top,
left : mainItemElPos.left,
width : mainItemElDim.width,
height : mainItemElDim.height,
},
1000,
function(mainItem, itemEl){return function(){
// process after animation
};}(mainItem, itemEl)
);
有谁知道我应该在哪里解决这个问题?也许jquery animate和amp;之间存在兼容性问题。 angular的ngAnimate?或者一些弃用的方法或一些全局设置......我不知道:p
----------------------------已解决:
结果证明jQuery.animate()和datejs之间存在兼容性问题。 Datejs由于某种原因覆盖Date.now,导致返回Date对象而不是整数。修改datejs的源代码解决了我的问题!