mirror of
https://github.com/Sped0n/bridget.git
synced 2026-04-21 13:39:30 -07:00
add comments
This commit is contained in:
@@ -35,37 +35,51 @@ const disableListener = (): void => {
|
|||||||
|
|
||||||
// enable overlay
|
// enable overlay
|
||||||
export const overlayEnable = (): void => {
|
export const overlayEnable = (): void => {
|
||||||
|
// show the overlay components
|
||||||
overlayCursor.style.zIndex = '100'
|
overlayCursor.style.zIndex = '100'
|
||||||
|
// set overlay event listeners
|
||||||
setListener()
|
setListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable overlay
|
// disable overlay
|
||||||
export const overlayDisable = (): void => {
|
export const overlayDisable = (): void => {
|
||||||
|
// hide the overlay components
|
||||||
overlayCursor.style.zIndex = '-1'
|
overlayCursor.style.zIndex = '-1'
|
||||||
|
// set overlay cursor text content to none
|
||||||
setCursorText('')
|
setCursorText('')
|
||||||
|
// disable overlay event listeners
|
||||||
disableListener()
|
disableListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle close click
|
// handle close click
|
||||||
async function handleCloseClick(): Promise<void> {
|
async function handleCloseClick(): Promise<void> {
|
||||||
|
// disable overlay
|
||||||
overlayDisable()
|
overlayDisable()
|
||||||
const indexesNum = trailingImageIndexes.length
|
const indexesNum = trailingImageIndexes.length
|
||||||
|
// empty trail images indexes
|
||||||
emptyTrailingImageIndexes()
|
emptyTrailingImageIndexes()
|
||||||
for (let i: number = 0; i < indexesNum; i++) {
|
for (let i: number = 0; i < indexesNum; i++) {
|
||||||
const e: HTMLImageElement = images[calcImageIndex(globalIndex - i, imagesArrayLen)]
|
// get element from index and store the index
|
||||||
trailingImageIndexes.unshift(calcImageIndex(globalIndex - i, imagesArrayLen))
|
const index: number = calcImageIndex(globalIndex - i, imagesArrayLen)
|
||||||
|
const e: HTMLImageElement = images[index]
|
||||||
|
trailingImageIndexes.unshift(index)
|
||||||
|
e.style.display = 'block'
|
||||||
|
e.style.zIndex = `${indexesNum - i - 1}`
|
||||||
|
// set different style for trailing and top image
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
e.style.transitionDelay = '0s, 0.7s'
|
e.style.transitionDelay = '0s, 0.7s'
|
||||||
e.dataset.status = 'resumeTop'
|
e.dataset.status = 'resumeTop'
|
||||||
|
e.style.transform = transformCache[indexesNum - i - 1]
|
||||||
} else {
|
} else {
|
||||||
e.style.transitionDelay = `${1.2 + 0.1 * i - 0.1}s`
|
e.style.transform = transformCache[indexesNum - i - 1]
|
||||||
e.style.display = 'block'
|
// e.style.transitionDelay = `${1.2 + 0.1 * i - 0.1}s`
|
||||||
|
e.style.transitionDelay = '1.5s'
|
||||||
e.dataset.status = 'resume'
|
e.dataset.status = 'resume'
|
||||||
}
|
}
|
||||||
e.style.transform = transformCache[indexesNum - i - 1]
|
|
||||||
e.style.zIndex = `${indexesNum - i - 1}`
|
|
||||||
}
|
}
|
||||||
|
// halt the function while animation is running
|
||||||
await delay(1200 + stackDepth * 100 + 100)
|
await delay(1200 + stackDepth * 100 + 100)
|
||||||
|
// add back enter overlay event listener to top image
|
||||||
addEnterOverlayEL(images[calcImageIndex(globalIndex, imagesArrayLen)])
|
addEnterOverlayEL(images[calcImageIndex(globalIndex, imagesArrayLen)])
|
||||||
for (let i: number = 0; i < indexesNum; i++) {
|
for (let i: number = 0; i < indexesNum; i++) {
|
||||||
images[calcImageIndex(globalIndex - i, imagesArrayLen)].dataset.status = 'null'
|
images[calcImageIndex(globalIndex - i, imagesArrayLen)].dataset.status = 'null'
|
||||||
@@ -77,9 +91,12 @@ async function handleCloseClick(): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handlePrevClick = (): void => {
|
const handlePrevClick = (): void => {
|
||||||
|
// get last displayed image's index
|
||||||
const imgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
const imgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
// change global index and get current displayed image's index
|
||||||
globalIndexDec()
|
globalIndexDec()
|
||||||
const prevImgIndex = calcImageIndex(globalIndex, imagesArrayLen)
|
const prevImgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
// store current displayed image's index
|
||||||
pushIndex(
|
pushIndex(
|
||||||
prevImgIndex,
|
prevImgIndex,
|
||||||
trailingImageIndexes,
|
trailingImageIndexes,
|
||||||
@@ -89,17 +106,24 @@ const handlePrevClick = (): void => {
|
|||||||
true,
|
true,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
// hide last displayed image
|
||||||
images[imgIndex].style.display = 'none'
|
images[imgIndex].style.display = 'none'
|
||||||
|
images[imgIndex].dataset.status = 'trail'
|
||||||
center(images[prevImgIndex])
|
center(images[prevImgIndex])
|
||||||
images[prevImgIndex].dataset.status = 'top'
|
images[prevImgIndex].dataset.status = 'top'
|
||||||
|
// process complete, show the image
|
||||||
images[prevImgIndex].style.display = 'block'
|
images[prevImgIndex].style.display = 'block'
|
||||||
|
// change index display
|
||||||
imgIndexSpanUpdate(prevImgIndex + 1, imagesArrayLen)
|
imgIndexSpanUpdate(prevImgIndex + 1, imagesArrayLen)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleNextClick = (): void => {
|
const handleNextClick = (): void => {
|
||||||
|
// get last displayed image's index
|
||||||
const imgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
const imgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
// change global index and get current displayed image's index
|
||||||
globalIndexInc()
|
globalIndexInc()
|
||||||
const nextImgIndex = calcImageIndex(globalIndex, imagesArrayLen)
|
const nextImgIndex: number = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
// store current displayed image's index
|
||||||
pushIndex(
|
pushIndex(
|
||||||
nextImgIndex,
|
nextImgIndex,
|
||||||
trailingImageIndexes,
|
trailingImageIndexes,
|
||||||
@@ -109,15 +133,23 @@ const handleNextClick = (): void => {
|
|||||||
false,
|
false,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
// hide last displayed image
|
||||||
images[imgIndex].style.display = 'none'
|
images[imgIndex].style.display = 'none'
|
||||||
|
images[imgIndex].dataset.status = 'trail'
|
||||||
|
// process the image going to display
|
||||||
center(images[nextImgIndex])
|
center(images[nextImgIndex])
|
||||||
images[nextImgIndex].dataset.status = 'top'
|
images[nextImgIndex].dataset.status = 'top'
|
||||||
|
// process complete, show the image
|
||||||
images[nextImgIndex].style.display = 'block'
|
images[nextImgIndex].style.display = 'block'
|
||||||
|
// change index display
|
||||||
imgIndexSpanUpdate(nextImgIndex + 1, imagesArrayLen)
|
imgIndexSpanUpdate(nextImgIndex + 1, imagesArrayLen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// change text and position of overlay cursor
|
||||||
const handleOverlayMouseMove = (e: MouseEvent): void => {
|
const handleOverlayMouseMove = (e: MouseEvent): void => {
|
||||||
|
// set text position
|
||||||
setTextPos(e)
|
setTextPos(e)
|
||||||
|
// set text content
|
||||||
if (e.clientX < oneThird) {
|
if (e.clientX < oneThird) {
|
||||||
setCursorText('PREV')
|
setCursorText('PREV')
|
||||||
overlayCursor.dataset.status = 'PREV'
|
overlayCursor.dataset.status = 'PREV'
|
||||||
@@ -129,6 +161,7 @@ const handleOverlayMouseMove = (e: MouseEvent): void => {
|
|||||||
overlayCursor.dataset.status = 'NEXT'
|
overlayCursor.dataset.status = 'NEXT'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleOverlayClick = (): void => {
|
const handleOverlayClick = (): void => {
|
||||||
switch (overlayCursor.dataset.status) {
|
switch (overlayCursor.dataset.status) {
|
||||||
case 'PREV':
|
case 'PREV':
|
||||||
@@ -145,7 +178,9 @@ const handleOverlayClick = (): void => {
|
|||||||
|
|
||||||
// set event listener
|
// set event listener
|
||||||
const setListener = (): void => {
|
const setListener = (): void => {
|
||||||
|
// add mouse move event listener (for overlay text cursor)
|
||||||
window.addEventListener('mousemove', handleOverlayMouseMove, { passive: true })
|
window.addEventListener('mousemove', handleOverlayMouseMove, { passive: true })
|
||||||
|
// add close/prev/next click event listener
|
||||||
overlayCursor.addEventListener('click', handleOverlayClick, { passive: true })
|
overlayCursor.addEventListener('click', handleOverlayClick, { passive: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,6 +188,7 @@ export const vwRefreshInit = (): void => {
|
|||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
'resize',
|
'resize',
|
||||||
() => {
|
() => {
|
||||||
|
// refresh value of one third
|
||||||
oneThird = Math.round(window.innerWidth / 3)
|
oneThird = Math.round(window.innerWidth / 3)
|
||||||
// reset footer height
|
// reset footer height
|
||||||
const r = document.querySelector(':root') as HTMLStyleElement
|
const r = document.querySelector(':root') as HTMLStyleElement
|
||||||
@@ -162,8 +198,8 @@ export const vwRefreshInit = (): void => {
|
|||||||
r.style.setProperty('--footer-height', '31px')
|
r.style.setProperty('--footer-height', '31px')
|
||||||
}
|
}
|
||||||
// recenter image (only in overlay)
|
// recenter image (only in overlay)
|
||||||
const i: HTMLImageElement = images[calcImageIndex(globalIndex, imagesArrayLen)]
|
if (images[calcImageIndex(globalIndex, imagesArrayLen)].dataset.status === 'top')
|
||||||
if (i.dataset.status === 'top') center(i)
|
center(images[calcImageIndex(globalIndex, imagesArrayLen)])
|
||||||
},
|
},
|
||||||
{ passive: true }
|
{ passive: true }
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user