import Moveable from "lit-moveable"; import InfiniteViewer from "lit-infinite-viewer"; import { LitElement, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ref, createRef } from "lit/directives/ref.js"; @customElement("lit-app") export default class App extends LitElement { viewerRef: Ref = createRef(null); scrollOptions: any = { container: () => this.viewerRef.value!.getContainer(), threshold: 20, getScrollPosition: () => { return [ this.viewerRef.value!.getScrollLeft({ absolute: true }), this.viewerRef.value!.getScrollTop({ absolute: true }), ]; } }; render() { return html `
Target
`; } firstUpdated() { setTimeout(() => { this.viewerRef.value!.scrollCenter(); }, 100); } onClick() { this.viewerRef.value!.scrollCenter(); } onRender(e) { e.target.style.cssText += e.cssText; } onScroll({ direction }) { this.viewerRef.value!.scrollBy(direction[0] * 10, direction[1] * 10); } }