当前位置: 首页 > news >正文

想要给网站投稿如何做手机软件制作平台

想要给网站投稿如何做,手机软件制作平台,权威网站发布平台,临安网站建设公司vue3threejs,做一个给模型批量CSS2D标签的案例,在导入模型的js文件里,跟着课程写的代码如下: import * as THREE from three; // 引入gltf模型加载库GLTFLoader.js import { GLTFLoader } from three/addons/loaders/GLTFLoader.…

vue3+threejs,做一个给模型批量CSS2D标签的案例,在导入模型的js文件里,跟着课程写的代码如下:

import * as THREE from 'three';
// 引入gltf模型加载库GLTFLoader.js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';// 引入CSS2模型对象CSS2DObject
import {CSS2DObject
} from 'three/addons/renderers/CSS2DRenderer.js';const model = new THREE.Group();
const loader = new GLTFLoader();
// 路径要特别注意,默认是从public读取的,模型文件必须放在public下,并且路径前的public要省略
loader.load('models/简易小区.glb', gltf => {gltf.scene.getObjectByName("小区房子").traverse(function (obj) {if (obj.isMesh) {let label = tag(obj.name);const pos = new THREE.Vector3();obj.getWorldPosition(pos);label.position.copy(pos);label.name = obj.name;model.add(label);}});model.add(gltf.scene);
}, undefined, error => {console.error(error);
});function tag(name) {// 创建dom元素(作为标签)let div = document.createElement('div');div.innerHTML = name;div.classList.add('css2dtag');//使用dom元素生成CSS2模型对象CSS2DObjectlet label = new CSS2DObject(div);div.style.pointerEvents = 'none';//避免HTML标签遮挡三维场景的鼠标事件return label;//返回CSS2模型标签      }export default model;

在vue文件里设置css。

<template>
</template><script setup>
import { scene } from './init.js';
</script><style scoped>.css2dtag {background: #ffffff;color: orangered;}
</style>

运行代码后发现css没有生效。

查了资料,找到一篇参考文章:

threejs 代码创建div设置样式不生效的问题原因探讨 - 简书

尝试去掉scoped,确实生效了,但是这种处理并不理想。

在继续学习threejs课程的时候,发现老师教了另一种批量创建的办法。

对vue文件修改如何:

增加一个id为css2dtag的div,css加上scoped。

<template><div id="css2dtag" style="display: none;"></div>
</template><script setup>
import { scene } from './init.js';
</script><style scoped>#css2dtag {background: #ffffff;color: orangered;}
</style>

然后在导入模型的js文件里,通过克隆这个div来批量创建dom元素。

import * as THREE from 'three';
// 引入gltf模型加载库GLTFLoader.js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';// 引入CSS2模型对象CSS2DObject
import {CSS2DObject
} from 'three/addons/renderers/CSS2DRenderer.js';const model = new THREE.Group();
const loader = new GLTFLoader();
// 路径要特别注意,默认是从public读取的,模型文件必须放在public下,并且路径前的public要省略
loader.load('models/简易小区.glb', gltf => {gltf.scene.getObjectByName("小区房子").traverse(function (obj) {if (obj.isMesh) {let label = tag(obj.name);const pos = new THREE.Vector3();obj.getWorldPosition(pos);label.position.copy(pos);label.name = obj.name;model.add(label);}});model.add(gltf.scene);
}, undefined, error => {console.error(error);
});function tag(name) {// 通过克隆来批量创建divlet div = document.getElementById('css2dtag').cloneNode();div.innerHTML = name;//使用dom元素生成CSS2模型对象CSS2DObjectlet label = new CSS2DObject(div);div.style.pointerEvents = 'none';//避免HTML标签遮挡三维场景的鼠标事件return label;//返回CSS2模型标签      
}export default model;

再次运行代码,css生效了。

http://www.yayakq.cn/news/798083/

相关文章:

  • wordpress5.0版本恢复到旧版本南京优化网站建设
  • 阿里云搭建网站交易平台网站模板
  • 石家庄网站制作公司排名前十贵阳网站开发招聘
  • 绵阳网站建设费用网站维护 年费
  • 辽宁省建设厅证书查询网站做招聘网站怎么办营业执照
  • 我的网站360搜索被做跳转modernize wordpress
  • 驾校网上约车网站开发找做网站签证
  • 扬州市城乡建设局网站西安高新区网站制作
  • 360海南地方网站做文案的网站
  • 外国做足球数据网站数据库服务器
  • 手机网站怎么建立佛山网站页面优化
  • 常用的设计师网站在线设计平台行业概况
  • 设计师网上接单的平台天津百度seo推广
  • 企业内部网站开发网站接口需求
  • 品牌网站策划书深圳网站开发一薇
  • 企业大学网站建设计划泰州哪家做网站建设比较好
  • 乐清网站定制公司哪家好专业电商网站建设
  • 好看的知名企业网站江苏省工程建设信息官方网
  • 海南网站公司微信 网站 收费
  • 建设银网官方网站门店设计效果图
  • 做影视网站怎么挣钱龙岗网站建设过程
  • 定制旅游网站建设方案上海网站建设口碑好
  • 深圳市住房和建设局官方网站查阅清华大学有关网站建设的书
  • 泊头做网站的太原建站塔山双喜
  • 南宁seo网站推广服务产品设计公司
  • 淘宝客 网站建设不完整黑龙江新闻夜航今晚回放
  • 自建站跨境电商wordpress ftp账户
  • 找人做一个小网站需要多少钱做网站公司信科建站免费
  • 江苏华东建设基础工程有限公司网站网站开发知识体系
  • 西安 美院 网站建设延庆宜昌网站建设