import Moveable from "lit-moveable"; import "./snap.css"; import { LitElement, html } from "lit"; import { customElement, property, state } from "lit/decorators.js"; @customElement("lit-app") export default class App extends LitElement { @state() snapContainer: HTMLElement | string = ".snapGrid"; render() { return html `
Target
`; } onMoustEnter(e: MouseEvent) { this.snapContainer = e.currentTarget as HTMLElement; } onDragStart() { document.querySelectorAll(".snapGrid").forEach(grid => { grid.addEventListener("mouseenter", this.onMoustEnter); }); } onDrag(e) { e.target.style.transform = e.transform; e.target.style.pointerEvents = "none"; } onDragEnd(e) { e.target.style.pointerEvents = ""; document.querySelectorAll(".snapGrid").forEach(grid => { grid.removeEventListener("mouseenter", this.onMoustEnter); }); } }