threejs代码创建div设置样式不生效的问题原因探讨
简书链接:threejs代码创建div设置样式不生效的问题原因探讨
文章字数:452,阅读全文大约需要1分钟
环境是vue环境,发现添加后打开开发者工具发现这个div并没有被设置上样式,按理来说用html js的基础常识来说这样的代码定然是没问题的,但是vue中不一样了,
vue有样式作用域的概念
1 | function create3DSprite(name): CSS3DSprite { |
这样的代码如果换在html环境肯定正常的,在vue中,涉及到作用域问题,
解决方法1 去掉作用域
就是去掉当前vue中的作用域 也就是上面的class定义了tag的作用域<style scoped></style>
改为<style></style
但是这样等于当前文件所有样式其他文件都能访问到,不太好
方法2直接在当前代码设置样式
直接在当前代码设置样式
,这方法是逃避解决 ,不妥
方法3用deep
此方法大概意思是让这个类变成公共的,不妥
1 | .tag ::v-deep .your-deep-selector { |
1 | ,本方法具体使用 |
CSS3LabelRenderer.domElement.style.pointerEvents = ‘none’;
document.body.appendChild(CSS3LabelRenderer.domElement);
把body.appendChild改为当前vue的根 appendChild
## 方法5把这个div的样式直接放到全局样式表
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 情迁博客!
评论