User:Monster Domosed/common.js: Difference between revisionsGive feedback
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 29: | Line 29: | ||
} | } | ||
const match = wrapper.className.match(/ | const match = wrapper.className.match(/model_size_(\d+)/); | ||
if (!match) { | if (!match) { | ||
| Line 35: | Line 35: | ||
} | } | ||
const size = | const size = match[1]; | ||
viewer.style.width = size + 'px'; | viewer.style.width = size + 'px'; | ||
| Line 42: | Line 42: | ||
function | function addButton(viewer) { | ||
if (viewer.dataset.qualityButton) { | if (viewer.dataset.qualityButton) { | ||
return; | return; | ||
| Line 93: | Line 51: | ||
updateViewerSize(viewer); | updateViewerSize(viewer); | ||
const parent = viewer.parentElement; | |||
const | const container = document.createElement('div'); | ||
container.className = 'mv-quality-container'; | |||
parent.insertBefore(container, viewer); | |||
container.appendChild(viewer); | |||
const | const button = document.createElement('button'); | ||
button.className = 'mv-quality-toggle'; | |||
button.type = 'button'; | |||
const icon = document.createElement('img'); | |||
icon.src = LQ_ICON; | |||
icon.alt = 'LQ/HQ'; | |||
button.appendChild(icon); | |||
container.appendChild(button); | |||
button.addEventListener('click', function () { | |||
console.log('quality button clicked'); | |||
icon.src = icon.src.includes('2D_icon') | |||
? HQ_ICON | |||
: LQ_ICON; | |||
}); | |||
console.log('Added quality button', viewer); | |||
} | } | ||
function | function scan() { | ||
document.querySelectorAll('model-viewer').forEach( | document.querySelectorAll('model-viewer').forEach(addButton); | ||
} | } | ||
scan(); | |||
const observer = new MutationObserver(function () { | |||
scan(); | |||
}); | |||
observer.observe(document.body, { | |||
childList: true, | |||
subtree: true | |||
}); | }); | ||