小编Ale*_*der的帖子

CSS3矩阵旋转

我有一个CSS 3D立方体,我正试图向左/右/向上/向下旋转,因为它看起来像用户.如果我使用css rotation函数,那么我旋转轴,而不是立方体.

网上有很多关于X,Y,Z矩阵旋转计算的文章,但我现在花了好几天试图设置这个东西,这些信息都没有真正帮助我.

解决我的问题的方法是一个WebKitCSSMatrix对象,它有自己的旋转功能,可以起到魔力的作用.关于小提琴的一个例子:http://jsfiddle.net/joecritch/tZBDW/.但同样,这只依赖于Uppon Webkit,但我需要在这里进行交叉的讨论.

现在,成功的方法有三个步骤:

1)我需要获得当前矩阵,设置方向向量(上/下为1,0,0,左/右旋转为0,1,0)并设置角度.DONE.

2)我需要根据当前矩阵计算新的旋转矢量.DONE.

3)我需要通过新的矢量和角度实际旋转当前矩阵.问题.

var newMArray = deMatrix(".cube");//getting current matrix from CSS

var v = [vecX, vecY, vecZ, 0];//current vector (1,0,0) or (0,1,0)

var newV = newMVector(newMArray, v);//calculating new vector for current matrix

//getting the angle for each axis based on new vector
angleX = newV[0]*angle;
angleY = newV[1]*angle;
angleZ = newV[2]*angle;

this.rotateX -= angleX;
this.rotateY -= angleY;
this.rotateZ -= angleZ; 

//calculating the rotation matrix
var rotationXMatrix, …
Run Code Online (Sandbox Code Playgroud)

javascript 3d matrix css3

21
推荐指数
1
解决办法
2880
查看次数

大型SVG渲染期间的DOM操作

好的,所以我试图通过设置百分比指标的"正在加载..."消息来完成我的项目.很容易.问题是我有超过6,000 Raphael/SVG行代码注入2000多个新节点DOM.因此,当我尝试在加载消息时更改我的%指示符时,真正的问题出现了,但浏览器只是冻结,直到Raphael完成创建所有节点.

我尝试过的和我所知道的:

1)我有非常简单的函数来计算加载百分比,通过增加countvar并在我的6000个代码中传播这个函数.这样我模拟了实际的加载过程.没什么新鲜的.

2)我知道这个函数可以起到魔力的作用,通过加载过程,我实际上从零到100%-hero.

3)在这个函数中,每次我获得新值 - 我都试图在屏幕上更新% - 但是当我立即获得100%时,直到满页加载都没有任何反应.

4)我可以让我的指标更新的唯一方法是alert()每次我尝试更新它时设置.当警报弹出窗口进入屏幕时,这就是改变我的指示器的魔法灰尘.

5)我已经尝试过setTimeout很多其他的东西,比如切换visibility,更改position,创建子节点,运行虚拟循环等......在SVG渲染过程中没有任何帮助...... 一切都只是零度冻结.

6)唯一不会卡在屏幕上的是我的小CSS动画(带有暗区的旋转圆圈)(好吧,除了FF - 甚至没有CSS动画).

7)我从其他来源了解到我无法模仿alert()我自己的行为,所以这里没有运气.

8)我试过deferasync,但我没有装载问题,我有渲染/ DOM注入的问题...

我想这就是我想在完美条件下得到的东西:

1)我想知道 - 如何确定每个svg节点注入/操作?

2)那么,如何停止整个渲染/注入过程并自己做一些事情直到callback

3)然后,如何恢复?)))

4)或者也许有一些我错过的东西......

javascript html5 svg dom raphael

5
推荐指数
0
解决办法
1792
查看次数

标签 统计

javascript ×2

3d ×1

css3 ×1

dom ×1

html5 ×1

matrix ×1

raphael ×1

svg ×1