为多个div设置动画的最佳JavaScript库
我有一个网格的div框,我将动画。当用户拖动其中一个框(重新对齐到网格中)后,它们将在屏幕上移动 目前,我正在使用JQuery更改所有div的css左上方位置,并每隔一段时间运行这个命令 如果超过50个盒子,那就太晚了。我怎样才能让它不那么迟钝?有没有更好的动画库,或者我只需要将其限制为50个框 布局图像:为多个div设置动画的最佳JavaScript库,javascript,css,jquery-ui-draggable,Javascript,Css,Jquery Ui Draggable,我有一个网格的div框,我将动画。当用户拖动其中一个框(重新对齐到网格中)后,它们将在屏幕上移动 目前,我正在使用JQuery更改所有div的css左上方位置,并每隔一段时间运行这个命令 如果超过50个盒子,那就太晚了。我怎样才能让它不那么迟钝?有没有更好的动画库,或者我只需要将其限制为50个框 布局图像: 老实说,我不知道有哪一个库能让这项工作对您更有效率,尽管有许多库比jQuery更快。问题不仅在于jQuery,还在于您有50个元素都可以移动/拖动,因此需要大量浏览器资源 如果你可以发布你的
老实说,我不知道有哪一个库能让这项工作对您更有效率,尽管有许多库比jQuery更快。问题不仅在于jQuery,还在于您有50个元素都可以移动/拖动,因此需要大量浏览器资源 如果你可以发布你的代码,我们可能会建议你做一些事情来稍微加快速度
我能想到的两个最大的问题是,如果您以编程方式添加这些框,并在向页面添加元素时为每个框添加处理程序,以及如果您不将选择器存储在变量中。除此之外,我还需要查看代码。老实说,我不知道有哪一个库可以让这项工作对您更有效,尽管有许多库比jQuery更快。问题不仅在于jQuery,还在于您有50个元素都可以移动/拖动,因此需要大量浏览器资源 如果你可以发布你的代码,我们可能会建议你做一些事情来稍微加快速度
我能想到的两个最大的问题是,如果您以编程方式添加这些框,并在向页面添加元素时为每个框添加处理程序,以及如果您不将选择器存储在变量中。除此之外,我还必须查看代码。有几种提高性能的方法。一种是减少每个框所需的DOM元素数量。另一种方法是不在当前视口外设置长方体动画(和渲染)。将可视区域之外的所有框指定为“显示:无”,并在开始新动画之前将其排除。如果您想更进一步,您可以开始循环使用框,而不是在用户滚动页面时显示和隐藏它们 这样,无论有多少个框(超过视口中可以容纳的数量),都将始终获得相同的性能 这种技术称为UI虚拟化。有几个项目使用它,如:。当您需要渲染大量元素(数百、数千、数百万)时,它非常有用。但这需要相当多的工作才能做好。我不知道有什么通用的工作组件可以很容易地插入。我试图找到一篇解释它的文章。这是我目前唯一能想到的,不过是Silverlight:
也可以为jQuery尝试这个插件。使用常规的“动画”方法,它会尽可能使用(硬件加速的)CSS动画:有几种方法可以提高性能。一种是减少每个框所需的DOM元素数量。另一种方法是不在当前视口外设置长方体动画(和渲染)。将可视区域之外的所有框指定为“显示:无”,并在开始新动画之前将其排除。如果您想更进一步,您可以开始循环使用框,而不是在用户滚动页面时显示和隐藏它们 这样,无论有多少个框(超过视口中可以容纳的数量),都将始终获得相同的性能 这种技术称为UI虚拟化。有几个项目使用它,如:。当您需要渲染大量元素(数百、数千、数百万)时,它非常有用。但这需要相当多的工作才能做好。我不知道有什么通用的工作组件可以很容易地插入。我试图找到一篇解释它的文章。这是我目前唯一能想到的,不过是Silverlight: 也可以为jQuery尝试这个插件。使用常规的“动画”方法,它将尽可能使用(硬件加速的)CSS动画:看看: 它有允许您使用css3动画(如果可用)或使用jQuery/JS动画的选项 方便网格动画和安排 一些勇敢的灵魂也设法给同位素增加了阻力。(有点笨重,但很管用)看看: 它有允许您使用css3动画(如果可用)或使用jQuery/JS动画的选项 方便网格动画和安排
一些勇敢的灵魂也设法给同位素增加了阻力。(有点笨重,但效果不错)您有几个选项可以优化性能
requestAnimationFrame
,允许浏览器处理动画计时以优化Javascript动画。与jQuery框架使用的时间来执行动画不同,您可以重复调用requestAnimationFrame。浏览器将使用动画的进度变量调用函数,并根据进度变量渲染动画的当前阶段。对此进行了深入的讨论。Google Closure是我所知道的唯一一个使用requestAnimationFrame的框架,它相当重