slightly better bloat loading
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / test_service (push) Successful in 17s
All checks were successful
Rebuild signaller for deprived.dev to rebuild site / test_service (push) Successful in 17s
This commit is contained in:
parent
d6501f0b3a
commit
93b7c5e7c7
2 changed files with 64 additions and 53 deletions
64
src/routes/baller/+page.svelte
Normal file
64
src/routes/baller/+page.svelte
Normal file
|
@ -0,0 +1,64 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from "svelte";
|
||||
|
||||
let scrollY = 0;
|
||||
|
||||
const animateInterval = 16;
|
||||
const startMove = 64;
|
||||
const numFrames = 312;
|
||||
|
||||
let framesLoaded = 1;
|
||||
let ballsLoaded = 0;
|
||||
let frameLoader: HTMLImageElement;
|
||||
let frameLoader2: HTMLImageElement;
|
||||
let frameLoader3: HTMLImageElement;
|
||||
let frameLoader4: HTMLImageElement;
|
||||
|
||||
onMount(()=>{
|
||||
|
||||
// Force load once
|
||||
ballsLoaded = 4;
|
||||
onLoaded();
|
||||
});
|
||||
|
||||
function onLoaded (){
|
||||
ballsLoaded++;
|
||||
if (ballsLoaded > 3) {
|
||||
frameLoader.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
frameLoader2.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
frameLoader3.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
frameLoader4.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
ballsLoaded = 0;
|
||||
}
|
||||
}
|
||||
|
||||
let frameIndex = 0;
|
||||
$: frameIndex = Math.min(Math.floor(Math.max(scrollY-startMove, 0) / animateInterval+1), numFrames);
|
||||
</script>
|
||||
|
||||
<svelte:window bind:scrollY />
|
||||
|
||||
<div class="w-full flex justify-center" style="height: 5000px;">
|
||||
<!-- Image Loader -->
|
||||
<img on:load={()=>{onLoaded()}} bind:this={frameLoader} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
<img on:load={()=>{onLoaded()}} bind:this={frameLoader2} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
<img on:load={()=>{onLoaded()}} bind:this={frameLoader3} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
<img on:load={()=>{onLoaded()}} bind:this={frameLoader4} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
|
||||
<!-- add "top-0" so it sticks at the top -->
|
||||
<div class="sticky top-0" style="width: 200px; height: 200px;">
|
||||
<div class="flex justify-center items-center" style="width: 200px; height: 200px;">
|
||||
<img src="/images/spinning_cat/untitled_{frameIndex.toString().padStart(5, '0')}.png" class="object-contain w-full h-full" alt="">
|
||||
</div>
|
||||
<div>{frameIndex}</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="h-[1000px] bg-amber-700 w-full">
|
||||
|
||||
</div>
|
|
@ -1,53 +0,0 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from "svelte";
|
||||
|
||||
let scrollY = 0;
|
||||
|
||||
const animateInterval = 16;
|
||||
const startMove = 64;
|
||||
const numFrames = 312;
|
||||
|
||||
let framesLoaded = 1;
|
||||
let frameLoader: HTMLImageElement;
|
||||
let frameLoader2: HTMLImageElement;
|
||||
let loadingInterval: number | undefined;
|
||||
|
||||
onMount(()=>{
|
||||
setTimeout(() => {
|
||||
loadingInterval = setInterval(()=>{
|
||||
frameLoader.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
frameLoader2.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
|
||||
framesLoaded++;
|
||||
|
||||
if (framesLoaded >= numFrames) {
|
||||
clearInterval(loadingInterval);
|
||||
}
|
||||
}, 5);
|
||||
}, 200);
|
||||
});
|
||||
|
||||
let frameIndex = 0;
|
||||
$: frameIndex = Math.min(Math.floor(Math.max(scrollY-startMove, 0) / animateInterval+1), numFrames);
|
||||
</script>
|
||||
|
||||
<svelte:window bind:scrollY />
|
||||
|
||||
<div class="w-full flex justify-center" style="height: 5000px;">
|
||||
<!-- Image Loader -->
|
||||
<img bind:this={frameLoader} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
<img bind:this={frameLoader2} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
|
||||
|
||||
<!-- add "top-0" so it sticks at the top -->
|
||||
<div class="sticky top-0" style="width: 200px; height: 200px;">
|
||||
<div class="flex justify-center items-center" style="width: 200px; height: 200px;">
|
||||
<img src="/images/spinning_cat/untitled_{frameIndex.toString().padStart(5, '0')}.png" class="object-contain w-full h-full" alt="">
|
||||
</div>
|
||||
<div>{frameIndex}</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="h-[1000px] bg-amber-700 w-full">
|
||||
|
||||
</div>
|
Loading…
Add table
Add a link
Reference in a new issue