42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
|
|
---
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
<script>
|
||
|
|
////////////////////////////////////////////////////////
|
||
|
|
// Optional script to change the splash text on click //
|
||
|
|
////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
import { splashTexts } from '../constants/splashTexts'
|
||
|
|
|
||
|
|
document.addEventListener('astro:page-load', () => {
|
||
|
|
document.querySelectorAll<HTMLDivElement>('[data-splash-text-container]').forEach((container) => {
|
||
|
|
const updateSplashText = () => {
|
||
|
|
const splashTextElem = container.querySelector<HTMLSpanElement>('[data-splash-text]')
|
||
|
|
if (!splashTextElem) return
|
||
|
|
|
||
|
|
const splashTextsFiltered = splashTexts.filter((text) => text !== splashTextElem.textContent)
|
||
|
|
const newSplashText = splashTextsFiltered[Math.floor(Math.random() * splashTextsFiltered.length)]
|
||
|
|
if (!newSplashText) return
|
||
|
|
|
||
|
|
splashTextElem.textContent = newSplashText
|
||
|
|
}
|
||
|
|
|
||
|
|
container.addEventListener('click', updateSplashText)
|
||
|
|
|
||
|
|
const autoUpdateInterval = setInterval(updateSplashText, 60_000)
|
||
|
|
document.addEventListener('astro:before-swap', () => {
|
||
|
|
clearInterval(autoUpdateInterval)
|
||
|
|
})
|
||
|
|
|
||
|
|
container.addEventListener(
|
||
|
|
'mousedown',
|
||
|
|
(event) => {
|
||
|
|
if (event.detail > 1) event.preventDefault()
|
||
|
|
},
|
||
|
|
false
|
||
|
|
)
|
||
|
|
})
|
||
|
|
})
|
||
|
|
</script>
|