|
|
@@ -4,6 +4,8 @@ const strengthButton = document.querySelector("#strength-button")
|
|
|
const splitBox = document.querySelector(".splitBox")
|
|
|
const container = document.querySelector("#container")
|
|
|
const buttonBox = document.querySelector(".buttonBox")
|
|
|
+const txtBox = document.querySelector('.txt')
|
|
|
+let isMobile = false
|
|
|
|
|
|
// 需要切换的贴图
|
|
|
let bmTexture = null
|
|
|
@@ -17,6 +19,7 @@ let material = null
|
|
|
|
|
|
// 进入页面,加载好贴图
|
|
|
modelViewerParameters.addEventListener("load", () => {
|
|
|
+ isMobile = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)
|
|
|
strengthButton.style.display = "block"
|
|
|
ecButton.style.display = "block"
|
|
|
material = modelViewerParameters.model.materials[0]
|
|
|
@@ -44,7 +47,10 @@ modelViewerParameters.addEventListener("load", () => {
|
|
|
const modelViewerParameters2 = modelViewerParameters.cloneNode(true)
|
|
|
modelViewerParameters2.id = "sphere2"
|
|
|
modelViewerParameters2.style.display = "none"
|
|
|
+modelViewerParameters2.querySelector('.txt').innerHTML = '微痕增强'
|
|
|
+const txtBox2 = modelViewerParameters2.querySelector('.txt')
|
|
|
document.querySelector("#container").appendChild(modelViewerParameters2)
|
|
|
+startSync()
|
|
|
// 加载第二个模型
|
|
|
modelViewerParameters2.addEventListener("load", () => {
|
|
|
const material2 = modelViewerParameters2.model.materials[0]
|
|
|
@@ -66,29 +72,32 @@ const closeCompare = () => {
|
|
|
splitBox.style.display = "none"
|
|
|
ecButton.style.backgroundColor = "#f0f0f0"
|
|
|
container.style.flexDirection = "row"
|
|
|
-
|
|
|
+ txtBox.style.display = 'none'
|
|
|
+ txtBox2.style.display = 'none'
|
|
|
isEcClick = true
|
|
|
}
|
|
|
|
|
|
const openComparePC = () => {
|
|
|
modelViewerParameters2.style.display = "block"
|
|
|
+ txtBox.style.display = 'block'
|
|
|
+ txtBox2.style.display = 'block'
|
|
|
modelViewerParameters.style.width = "49.5%"
|
|
|
modelViewerParameters.style.maxWidth = "80%"
|
|
|
splitBox.style.display = "flex"
|
|
|
ecButton.style.backgroundColor = "#ccc"
|
|
|
- startSync()
|
|
|
isEcClick = false
|
|
|
}
|
|
|
|
|
|
const openCompareM = () => {
|
|
|
modelViewerParameters2.style.display = "block"
|
|
|
+ txtBox.style.display = 'block'
|
|
|
+ txtBox2.style.display = 'block'
|
|
|
modelViewerParameters2.style.width = "100%"
|
|
|
modelViewerParameters2.style.height = "0%"
|
|
|
modelViewerParameters.style.height = "50%"
|
|
|
container.style.flexDirection = "column"
|
|
|
ecButton.style.backgroundColor = "#ccc"
|
|
|
-
|
|
|
- startSync()
|
|
|
+ txtBoxRotate(modelViewerParameters2.querySelector('.txt'))
|
|
|
isEcClick = false
|
|
|
}
|
|
|
|
|
|
@@ -192,14 +201,15 @@ function handleCameraChange() {
|
|
|
const orbit = modelViewerParameters.getCameraOrbit()
|
|
|
const targetPoint = modelViewerParameters.getCameraTarget()
|
|
|
const fov = modelViewerParameters.getFieldOfView()
|
|
|
+ // 添加文字显示控制
|
|
|
+ modelViewerParameters.querySelector('.txt').style.opacity = fov < 28 ? 0 : 1
|
|
|
+ modelViewerParameters2.querySelector('.txt').style.opacity = fov < 28 ? 0 : 1
|
|
|
|
|
|
// 设置到目标viewer
|
|
|
modelViewerParameters2.cameraOrbit = orbit.toString()
|
|
|
modelViewerParameters2.cameraTarget = targetPoint.toString()
|
|
|
modelViewerParameters2.fieldOfView = `${fov}deg`
|
|
|
modelViewerParameters2.jumpCameraToGoal()
|
|
|
- console.log(modelViewerParameters.cameraOrbit, 'modelViewerParameters.cameraOrbit')
|
|
|
- console.log(modelViewerParameters2.cameraOrbit, 'modelViewerParameters2.cameraOrbit')
|
|
|
}
|
|
|
|
|
|
function handleCameraChange2() {
|
|
|
@@ -208,23 +218,19 @@ function handleCameraChange2() {
|
|
|
const orbit = modelViewerParameters2.getCameraOrbit()
|
|
|
const targetPoint = modelViewerParameters2.getCameraTarget()
|
|
|
const fov = modelViewerParameters2.getFieldOfView()
|
|
|
+ // 添加文字显示控制
|
|
|
+ modelViewerParameters.querySelector('.txt').style.opacity = fov < 28 ? 0 : 1
|
|
|
+ modelViewerParameters2.querySelector('.txt').style.opacity = fov < 28 ? 0 : 1
|
|
|
|
|
|
// 设置到目标viewer
|
|
|
modelViewerParameters.cameraOrbit = orbit.toString()
|
|
|
modelViewerParameters.cameraTarget = targetPoint.toString()
|
|
|
modelViewerParameters.fieldOfView = `${fov}deg`
|
|
|
modelViewerParameters.jumpCameraToGoal()
|
|
|
- // modelViewerParameters2.cameraOrbit = orbit.toString()
|
|
|
- // modelViewerParameters2.cameraTarget = targetPoint.toString()
|
|
|
- // modelViewerParameters2.fieldOfView = `${fov}deg`
|
|
|
- // modelViewerParameters.jumpCameraToGoal()
|
|
|
-
|
|
|
- console.log(modelViewerParameters.cameraOrbit, 'modelViewerParameters.cameraOrbit')
|
|
|
- console.log(modelViewerParameters2.cameraOrbit, 'modelViewerParameters2.cameraOrbit')
|
|
|
}
|
|
|
|
|
|
|
|
|
-let isMobile = false
|
|
|
+
|
|
|
// 页面旋转和缩放处理函数
|
|
|
function handleOrientationChange() {
|
|
|
const screenWidth = document.documentElement.clientWidth
|
|
|
@@ -244,6 +250,7 @@ function handleOrientationChange() {
|
|
|
buttonBox.style.bottom = "10px"
|
|
|
buttonBox.style.top = "auto"
|
|
|
buttonBox.style.zIndex = "1"
|
|
|
+ txtBoxRotate(txtBox)
|
|
|
} else {
|
|
|
isMobile = false
|
|
|
modelViewerParameters.orientation = '0deg 0deg 0deg'
|
|
|
@@ -251,6 +258,13 @@ function handleOrientationChange() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+const txtBoxRotate = (dom) => {
|
|
|
+ dom.style.transform = "rotate(90deg) translate(50%,-100%)"
|
|
|
+ dom.style.transformOrigin = "top right"
|
|
|
+ dom.style.left = "60%"
|
|
|
+ dom.style.top = "50%"
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
// 页面加载完成后初始化
|
|
|
window.addEventListener('load', () => {
|