mirror of
https://github.com/Sped0n/bridget.git
synced 2026-04-22 14:09:30 -07:00
add the function of clicking prev and next to control displaying image
This commit is contained in:
@@ -1,5 +1,22 @@
|
|||||||
import { delay, removeAllEventListeners, layersPosSet, center } from './utils'
|
import {
|
||||||
import { posArray, layers, handleOnMove } from './trackMouse'
|
delay,
|
||||||
|
removeAllEventListeners,
|
||||||
|
layersPosSet,
|
||||||
|
center,
|
||||||
|
createImgElement,
|
||||||
|
calcImageIndex,
|
||||||
|
FIFO
|
||||||
|
} from './utils'
|
||||||
|
import {
|
||||||
|
posArray,
|
||||||
|
layers,
|
||||||
|
handleOnMove,
|
||||||
|
globalIndex,
|
||||||
|
globalIndexDec,
|
||||||
|
globalIndexInc
|
||||||
|
} from './trackMouse'
|
||||||
|
import { imagesArray, imagesArrayLen } from './dataFetch'
|
||||||
|
import { imgIndexSpanUpdate } from './indexDisp'
|
||||||
|
|
||||||
// get components of overlay
|
// get components of overlay
|
||||||
const overlay = document.getElementsByClassName('overlay').item(0) as HTMLDivElement
|
const overlay = document.getElementsByClassName('overlay').item(0) as HTMLDivElement
|
||||||
@@ -40,6 +57,8 @@ export function overlayDisable(): void {
|
|||||||
overlay.style.zIndex = '-1'
|
overlay.style.zIndex = '-1'
|
||||||
setCursorText('')
|
setCursorText('')
|
||||||
disableListener()
|
disableListener()
|
||||||
|
// Add back previous self increment of global index (by handleOnMove)
|
||||||
|
globalIndexInc()
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle close click
|
// handle close click
|
||||||
@@ -56,6 +75,20 @@ async function handleCloseClick(): Promise<void> {
|
|||||||
window.addEventListener('mousemove', handleOnMove)
|
window.addEventListener('mousemove', handleOnMove)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handlePrevClick(): void {
|
||||||
|
globalIndexDec()
|
||||||
|
const imgIndex = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
FIFO(createImgElement(imagesArray[imgIndex]), layers)
|
||||||
|
imgIndexSpanUpdate(imgIndex + 1, imagesArrayLen)
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleNextClick(): void {
|
||||||
|
globalIndexInc()
|
||||||
|
const imgIndex = calcImageIndex(globalIndex, imagesArrayLen)
|
||||||
|
FIFO(createImgElement(imagesArray[imgIndex]), layers)
|
||||||
|
imgIndexSpanUpdate(imgIndex + 1, imagesArrayLen)
|
||||||
|
}
|
||||||
|
|
||||||
// set event listener
|
// set event listener
|
||||||
function setListener(): void {
|
function setListener(): void {
|
||||||
window.addEventListener('mousemove', overlayCursor, { passive: true })
|
window.addEventListener('mousemove', overlayCursor, { passive: true })
|
||||||
@@ -80,6 +113,13 @@ function setListener(): void {
|
|||||||
},
|
},
|
||||||
{ passive: true }
|
{ passive: true }
|
||||||
)
|
)
|
||||||
|
prevSection.addEventListener(
|
||||||
|
'click',
|
||||||
|
() => {
|
||||||
|
handlePrevClick()
|
||||||
|
},
|
||||||
|
{ passive: true }
|
||||||
|
)
|
||||||
nextSection.addEventListener(
|
nextSection.addEventListener(
|
||||||
'mouseover',
|
'mouseover',
|
||||||
() => {
|
() => {
|
||||||
@@ -87,6 +127,13 @@ function setListener(): void {
|
|||||||
},
|
},
|
||||||
{ passive: true }
|
{ passive: true }
|
||||||
)
|
)
|
||||||
|
nextSection.addEventListener(
|
||||||
|
'click',
|
||||||
|
() => {
|
||||||
|
handleNextClick()
|
||||||
|
},
|
||||||
|
{ passive: true }
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function vwRefreshInit(): void {
|
export function vwRefreshInit(): void {
|
||||||
|
|||||||
@@ -38,26 +38,6 @@ const activate = (index: number, x: number, y: number): void => {
|
|||||||
posCache(x, y, posArray)
|
posCache(x, y, posArray)
|
||||||
layersPosSet(posArray, layers)
|
layersPosSet(posArray, layers)
|
||||||
FIFO(createImgElement(imagesArray[index]), layers)
|
FIFO(createImgElement(imagesArray[index]), layers)
|
||||||
// top
|
|
||||||
layers[4].addEventListener(
|
|
||||||
'click',
|
|
||||||
() => {
|
|
||||||
// stop images animation
|
|
||||||
window.removeEventListener('mousemove', handleOnMove)
|
|
||||||
// set top image
|
|
||||||
center(layers[4])
|
|
||||||
for (let i = 4; i >= 0; i--) {
|
|
||||||
layers[i].dataset.status = `t${4 - i}`
|
|
||||||
}
|
|
||||||
// overlay init
|
|
||||||
overlayEnable()
|
|
||||||
},
|
|
||||||
{
|
|
||||||
passive: true,
|
|
||||||
once: true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
last = { x, y }
|
last = { x, y }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,4 +66,31 @@ export const handleOnMove = (e: MouseEvent): void => {
|
|||||||
// initialization
|
// initialization
|
||||||
export function trackMouseInit(): void {
|
export function trackMouseInit(): void {
|
||||||
window.addEventListener('mousemove', handleOnMove)
|
window.addEventListener('mousemove', handleOnMove)
|
||||||
|
layers[4].addEventListener(
|
||||||
|
'click',
|
||||||
|
() => {
|
||||||
|
// stop images animation
|
||||||
|
window.removeEventListener('mousemove', handleOnMove)
|
||||||
|
// set top image
|
||||||
|
center(layers[4])
|
||||||
|
for (let i = 4; i >= 0; i--) {
|
||||||
|
layers[i].dataset.status = `t${4 - i}`
|
||||||
|
}
|
||||||
|
// Offset previous self increment of global index (by handleOnMove)
|
||||||
|
globalIndexDec()
|
||||||
|
// overlay init
|
||||||
|
overlayEnable()
|
||||||
|
},
|
||||||
|
{
|
||||||
|
passive: true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function globalIndexDec(): void {
|
||||||
|
globalIndex--
|
||||||
|
}
|
||||||
|
|
||||||
|
export function globalIndexInc(): void {
|
||||||
|
globalIndex++
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user