几次点击后,cordova css转换速度变慢

时间:2015-11-21 16:49:06

标签: javascript jquery html css cordova

我的html页面中有一个列表。有一个按钮,允许用户将项目添加到列表中。每当用户添加新项目时,它将具有动画效果,让新项目从左移动到中心

 $("#addNewItem").on("click",function(){
    $('.List').append('<li class="listLeft listTransition"></li>');
    setTimeout(function () {
               $('#newLi').removeClass('listLeft');
               $('#newLi'.addClass('listCenter');
               }, 10);
});
//css class
    .listLeft{
        -webkit-transform: translate3d(-100%, 0, 1px);
        transform: translate3d(-100%, 0, 0);
    }
    .listCenter{
        -webkit-transform: translate3d(0, 0, 1px);
        transform: translate3d(0, 0, 0);
    }
    .listTransition{
        -webkit-transition-duration: 0.5s;
        transition-duration: 0.5s;
    }

它在前几次尝试时效果很好,点击次数超过3次后,转换速度会变慢。等待项目动画到中心需要2-3秒。在我尝试了7次之后,它会变得更慢。这与列表大小无关,因为如果我重新启动并重新打开应用程序,通过拥有更大的列表项,前几次尝试将始终具有良好的性能。第4次点击后,转换变慢。

之前我使用jquery .animate('left',1000)来进行转换。我认为这是导致转换缓慢的原因,所以我通过使用webkit转换切换到硬件加速,但最终结果是相同的,所以我猜没有任何相关的东西。

在测试期间,我在$('。List')。append()之前发出警告('测试'),我注意到这意外地解决了我的问题,也许警报()会清除一些缓存或做某事,但我不知道不知道。不幸的是这不允许提示警告框,所以它不能解决我的问题,我尝试使用bootstrap模态对话框来做同样的事情,但是它在4次点击后也没有给我平滑过渡

我想知道什么是可以解决我的问题的alert()里面的魔法,然后我可以复制类似的代码逻辑而不调用alert()。如果我能知道根本原因那就好了

0 个答案:

没有答案