mirror of
https://github.com/sveltejs/svelte.git
synced 2024-11-29 16:36:44 +01:00
993b40201c
* New FAQ, new renderer * Push blog stuff * Fix blog posts * Add tutorial to be rendered * Update documentation/content/blog/2023-03-09-zero-config-type-safety.md Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> * Update documentation/content/blog/2023-03-09-zero-config-type-safety.md Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> * Revamp a lot of renderer, make it (soft) compatible with sveltekit * Remove markdown types * Clean up faq +page * Document stuff * Make the options more explicity * chore(site-2): Restructure docs pt 2 (#8604) * Push * Update readme * Push * inor accessibility fix * minr stuff * Add prepare * Run prettier * Remove test script * pnpm update * Update sites/svelte.dev/src/routes/examples/[slug]/+page.svelte Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> * Update sites/svelte.dev/package.json Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> --------- Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com> --------- Co-authored-by: Simon H <5968653+dummdidumm@users.noreply.github.com>
87 lines
1.5 KiB
Svelte
87 lines
1.5 KiB
Svelte
<script>
|
|
const layers = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
|
|
|
let y;
|
|
</script>
|
|
|
|
<svelte:window bind:scrollY={y} />
|
|
|
|
<a class="parallax-container" href="https://www.firewatchgame.com">
|
|
{#each layers as layer}
|
|
<img
|
|
style="transform: translate(0,{(-y * layer) / (layers.length - 1)}px)"
|
|
src="https://www.firewatchgame.com/images/parallax/parallax{layer}.png"
|
|
alt="parallax layer {layer}"
|
|
/>
|
|
{/each}
|
|
</a>
|
|
|
|
<div class="text">
|
|
<span style="opacity: {1 - Math.max(0, y / 40)}"> scroll down </span>
|
|
|
|
<div class="foreground">
|
|
You have scrolled {y} pixels
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
.parallax-container {
|
|
position: fixed;
|
|
width: 2400px;
|
|
height: 712px;
|
|
left: 50%;
|
|
transform: translate(-50%, 0);
|
|
}
|
|
|
|
.parallax-container img {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
will-change: transform;
|
|
}
|
|
|
|
.parallax-container img:last-child::after {
|
|
content: '';
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: rgb(45, 10, 13);
|
|
}
|
|
|
|
.text {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 300vh;
|
|
color: rgb(220, 113, 43);
|
|
text-align: center;
|
|
padding: 4em 0.5em 0.5em 0.5em;
|
|
box-sizing: border-box;
|
|
pointer-events: none;
|
|
}
|
|
|
|
span {
|
|
display: block;
|
|
font-size: 1em;
|
|
text-transform: uppercase;
|
|
will-change: transform, opacity;
|
|
}
|
|
|
|
.foreground {
|
|
position: absolute;
|
|
top: 711px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: calc(100% - 712px);
|
|
background-color: rgb(32, 0, 1);
|
|
color: white;
|
|
padding: 50vh 0 0 0;
|
|
}
|
|
|
|
:global(body) {
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: rgb(253, 174, 51);
|
|
}
|
|
</style>
|