【发布时间】:2016-02-04 09:51:10
【问题描述】:
我一直在玩这样的傻事:http://jsfiddle.net/dp5rvd91/5/
我使用动态生成的 div 来创建图像。
for (var i = 0; i< its; i++){
var size = i;
var angle = dAngle * i;
var o = Math.sin(angle) * range;
var a = Math.cos(angle) * range;
var left = cx - a + i;
var top = cy - o+ i;
var c = myservice.rgbToHex(i, i*2,i);
var style = "".concat ("position: absolute; left:", left, "px; top:", top, "px; width: ", i, "px; height: ", i, "px; background-color: ", c, ";");
console.log(style);
$scope.divs.push(style);
}
<!-- HTML-->
<div ng-repeat = "d in divs" style = "{{d}}"/>
只是想知道 - 与使用 HTML5 画布相比,这在计算上是否效率低下?
【问题讨论】:
-
在大多数情况下,画布可能会更快,因为它只是数据的位图——这意味着 DOM 中实际上没有“n”个元素,因为您实际上只是在上面绘画最重要的是。当然,如果您只有 100 个左右的元素,差异可以忽略不计,但如果您有数千个元素,我肯定会考虑使用画布。
-
给出相同的定位计算,创建和操作 DOM 比操作画布像素更“昂贵”。
标签: html html5-canvas