diff --git a/assets/ts/imageCache.ts b/assets/ts/imageCache.ts new file mode 100644 index 0000000..b30438f --- /dev/null +++ b/assets/ts/imageCache.ts @@ -0,0 +1,18 @@ +import { imagesArray, imagesArrayLen } from './dataFetch' +import { preloadImage, calcImageIndex } from './utils' + +let lastIndex: number = 0 + +export function preloader(index: number): void { + if (lastIndex === index) { + for (let i: number = -2; i <= 1; i++) + preloadImage(imagesArray[calcImageIndex(index + i, imagesArrayLen)].url) + } else if (lastIndex > index) { + for (let i: number = 1; i <= 3; i++) + preloadImage(imagesArray[calcImageIndex(index - i, imagesArrayLen)].url) + } else { + for (let i: number = 1; i <= 3; i++) + preloadImage(imagesArray[calcImageIndex(index + i, imagesArrayLen)].url) + } + lastIndex = index +} diff --git a/assets/ts/main.ts b/assets/ts/main.ts index 2ff4796..725f43a 100644 --- a/assets/ts/main.ts +++ b/assets/ts/main.ts @@ -3,8 +3,10 @@ import { trackMouseInit } from './trackMouse' import { thresholdCtlInit } from './thresholdCtl' import { imagesArrayLen } from './dataFetch' import { vwRefreshInit } from './overlay' +import { preloader } from './imageCache' function init(): void { + preloader(0) vwRefreshInit() imgIndexSpanUpdate(0, imagesArrayLen) thresholdCtlInit()