mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +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>
52 lines
1.1 KiB
Svelte
52 lines
1.1 KiB
Svelte
<script>
|
|
import { onMount } from 'svelte';
|
|
|
|
let canvas;
|
|
|
|
onMount(() => {
|
|
const ctx = canvas.getContext('2d');
|
|
let frame;
|
|
|
|
(function loop() {
|
|
frame = requestAnimationFrame(loop);
|
|
|
|
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
|
|
|
for (let p = 0; p < imageData.data.length; p += 4) {
|
|
const i = p / 4;
|
|
const x = i % canvas.width;
|
|
const y = (i / canvas.height) >>> 0;
|
|
|
|
const t = window.performance.now();
|
|
|
|
const r = 64 + (128 * x) / canvas.width + 64 * Math.sin(t / 1000);
|
|
const g = 64 + (128 * y) / canvas.height + 64 * Math.cos(t / 1400);
|
|
const b = 128;
|
|
|
|
imageData.data[p + 0] = r;
|
|
imageData.data[p + 1] = g;
|
|
imageData.data[p + 2] = b;
|
|
imageData.data[p + 3] = 255;
|
|
}
|
|
|
|
ctx.putImageData(imageData, 0, 0);
|
|
})();
|
|
|
|
return () => {
|
|
cancelAnimationFrame(frame);
|
|
};
|
|
});
|
|
</script>
|
|
|
|
<canvas bind:this={canvas} width={32} height={32} />
|
|
|
|
<style>
|
|
canvas {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-color: #666;
|
|
-webkit-mask: url(/svelte-logo-mask.svg) 50% 50% no-repeat;
|
|
mask: url(/svelte-logo-mask.svg) 50% 50% no-repeat;
|
|
}
|
|
</style>
|