User:Monster Domosed/common.js: Difference between revisionsGive feedback
No edit summary |
Remove HQ/LQ model switching; keep preview/actual model toggle (with Domosed MCP) |
||
| Line 1: | Line 1: | ||
(function () { | (function () { | ||
'use strict'; | 'use strict'; | ||
function getSize(element) { | function getSize(element) { | ||
| Line 34: | Line 31: | ||
} | } | ||
function loadModel(preview) { | |||
if (preview.dataset.loaded) { | |||
return; | |||
} | |||
preview.dataset.loaded = '1'; | |||
const fileName = preview.dataset.model; | |||
const size = getSize(preview); | |||
getFileUrl(fileName + '.glb') | |||
.then(function (url) { | |||
if (!url) { | |||
return; | |||
} | |||
const container = document.createElement('div'); | |||
container.className = 'model-viewer-container'; | |||
container.style.width = size + 'px'; | |||
container.style.height = size + 'px'; | |||
const viewer = document.createElement('model-viewer'); | |||
viewer.src = url; | |||
viewer.setAttribute('camera-controls', ''); | |||
viewer.setAttribute('touch-action', 'pan-y'); | |||
container.appendChild(viewer); | |||
preview.replaceWith(container); | |||
}); | |||
} | |||
function syncWrapperSize(viewer) { | function syncWrapperSize(viewer) { | ||
const wrapper = viewer.closest('.model-placeholder'); | |||
if (!wrapper) { | |||
return; | |||
} | |||
const resizeObserver = new ResizeObserver(function () { | |||
wrapper.style.width = viewer.offsetWidth + 'px'; | |||
wrapper.style.height = viewer.offsetHeight + 'px'; | |||
}); | |||
resizeObserver.observe(viewer); | |||
} | } | ||
function initPreview(preview) { | function initPreview(preview) { | ||
| Line 173: | Line 117: | ||
})(); | })(); | ||