无法访问对象

无法访问对象

问题描述:

我的链接:http://dl.dropbox.com/u/7727742/playlistsite6/index5.html无法访问对象

我使用zachstronaut的演示 (链接:http://www.zachstronaut.com/lab/galaxy-box/)的变型的3D立方体。它使用JavaScript,translate3d,scale3d等...

我试着在css文件中分配不同的z-index值,但没有运气。我可以访问多维数据集外部的对象(可以使用悬停效果查看此对象),但不能访问多维数据集内的对象。我有一种预感,那是因为它没有像pre3d.js那样执行z-sort类型的函数。我想知道是否有人可以提供一些见解,我应该在哪里寻找解决方案。

对象坐标是随机生成的,因此您可能必须刷新一次或两次以获取多维数据集内的一些对象。

谢谢!

编辑:

只有在Safari和Chrome浏览器开发测试

的Webkit会忽略任何有translate3d定义Z-指标,因为它在逻辑上应该。 z-index适用于2D世界,就像拿一堆纸并说“这个是最上面的” - 你仍然有一个平坦的表面。不幸的是,如果你希望能够选择盒子里面的“星星”之一,那么因为你使用的是HTML节点,所以你一切都会好运。

这样做的正常方法是使用点击图 - 基本上每个对象都会被渲染两次。一次正常,一次以单色显示,无阴影等。第二次渲染从不显示,仅用于告知用户点击的内容。您可以获取他们点击的颜色,并将该颜色映射到特定的对象。如果您使用的是画布,则可以这样做,只需更改第二个渲染上的渲染顺序即可。

由于您使用的是HTML节点,因此您无法这样做。你有两个选择:

  • 可以计算哪个明星是在鼠标移动鼠标下基于视旋转和明星的X/Y/Z位置
  • 您可以通过尝试上述方法覆盖没有立方体的相同渲染,并且星星具有0%不透明度的地方。新渲染中的每个星星都会映射到现有星星中,并且您可以轻松进行鼠标悬停检测。

发布结果! :)

首先,我很高兴你发现我的演示很有趣!

你不会有太多的运气试图做一个悬停或捕获一个3D CSS3立方体内的物体上的点击事件,完全相同的原因,你不会有很多运气捕获悬停或点击事件在另一个div下面的div ...在HTML中,所有的DOM事件都会进入最顶层的DOM节点。如果一个div与另一个div重叠,则无法单击下面的div。 3D多维数据集内的所有内容都位于另一个DOM节点的“下面”。

事情变得更加复杂,因为您在3D空间中拍摄对象并要求用户使用2D输入设备(鼠标)在2D平面(浏览器窗口)上与它们进行交互。

您可以隐藏立方体的面部,以防止它们阻止用户的点击。你可以做一些像建议的cwolves。

对不起,我不能更多的帮助... HTML的一种让我们在这里失败了一点。欢迎来到流血的边缘!