Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为多个div设置动画的最佳JavaScript库_Javascript_Css_Jquery Ui Draggable - Fatal编程技术网

为多个div设置动画的最佳JavaScript库

为多个div设置动画的最佳JavaScript库,javascript,css,jquery-ui-draggable,Javascript,Css,Jquery Ui Draggable,我有一个网格的div框,我将动画。当用户拖动其中一个框(重新对齐到网格中)后,它们将在屏幕上移动 目前,我正在使用JQuery更改所有div的css左上方位置,并每隔一段时间运行这个命令 如果超过50个盒子,那就太晚了。我怎样才能让它不那么迟钝?有没有更好的动画库,或者我只需要将其限制为50个框 布局图像: 老实说,我不知道有哪一个库能让这项工作对您更有效率,尽管有许多库比jQuery更快。问题不仅在于jQuery,还在于您有50个元素都可以移动/拖动,因此需要大量浏览器资源 如果你可以发布你的

我有一个网格的div框,我将动画。当用户拖动其中一个框(重新对齐到网格中)后,它们将在屏幕上移动

目前,我正在使用JQuery更改所有div的css左上方位置,并每隔一段时间运行这个命令

如果超过50个盒子,那就太晚了。我怎样才能让它不那么迟钝?有没有更好的动画库,或者我只需要将其限制为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的框架,它相当重
  • CSS动画。jQuery提供CSS动画,许多其他框架也提供CSS动画。CSS动画为您提供硬件加速,因此动画速度更快。不幸的是,CSS动画相对较新,而且还没有得到很好的支持,因此根据您使用的库的不同,您可能最终会回到旧浏览器上的Javascript动画
  • 优化哟