javascript - Firefox 中奇怪的转换样式行为

标签 javascript html css 3d

我制作了这个二战飞机的 3D 模型。它应该旋转、射击和飞来飞去。

3D WWII Plane

问题是 Firefox 无法将平面渲染为 3D 对象,但 Chrome 可以。也许问题出在我的转换风格上。

您认为是什么导致了这个问题?我如何解决它?有时它会滞后很多。我该如何解决?

最佳答案

又一次,所谓的 FireFox 证明它是一个有缺陷的浏览器(更不用说它的慢速功能了)。看起来整个模型 .plane 无法将 transform-style:preserve-3d 应用到它的所有后代,只是直接子代或者该规则可能仅适用于伪元素(:before:after)。在这种情况下,模型 .plane 中设置的 preserve-3d 变换样式未应用前扇 (.body:after) ,你必须在 .body(它是风扇 :after 的直接父级)中正确设置该样式,然后它就可以正常工作,当然渲染是略有不同,这是由 FireFox 引起的):

.plane > .body {
   /*...*/
   /* add this here */
   -moz-transform-style: preserve-3d;
   transform-style: preserve-3d;
}
/* do the same for other components having pseudo-elements */
.plane > .wings {
  /*...*/
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;      
} 
.plane > .ins {
  /*...*/
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;     
}   
.plane > .rear { 
  /*...*/
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;      
}

Updated demo .

关于javascript - Firefox 中奇怪的转换样式行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464058/

相关文章:

php - 使用 preg_match 识别强密码

javascript - 使用 JavaScript 每 60 秒自动刷新页面

javascript - 如何找出应用了哪些样式表(通过 javascript 检查)?

html - “display table-cell” 增加/减少浏览器缩放时高度不同

javascript - 尝试访问 JSON 项目时未定义

javascript - 如何通过动画更改 Snap.svg 中多边形的点?

html - CSS停止表格行内的分页符

css - 供应商前缀导致 css 失败

javascript - app.get 中的express.js : how to use value returned by http. 请求

javascript - 在 Electron 中,如何从完整文件名上传文件