DragGhost.svelte 697 B

123456789101112131415161718192021222324252627282930
  1. <script lang="ts">
  2. import { onDestroy, onMount } from 'svelte';
  3. export let x;
  4. export let y;
  5. let popupElement = null;
  6. onMount(() => {
  7. document.body.appendChild(popupElement);
  8. document.body.style.overflow = 'hidden';
  9. });
  10. onDestroy(() => {
  11. document.body.removeChild(popupElement);
  12. document.body.style.overflow = 'unset';
  13. });
  14. </script>
  15. <!-- svelte-ignore a11y-click-events-have-key-events -->
  16. <!-- svelte-ignore a11y-no-static-element-interactions -->
  17. <div
  18. bind:this={popupElement}
  19. class="fixed top-0 left-0 w-screen h-[100dvh] z-50 touch-none pointer-events-none"
  20. >
  21. <div class=" absolute text-white z-[99999]" style="top: {y}px; left: {x}px;">
  22. <slot></slot>
  23. </div>
  24. </div>