Files
3dealer/resources/js/stimulus/appear-controller.js
T

21 lines
495 B
JavaScript

import { Controller } from '@hotwired/stimulus'
export default class extends Controller {
static classes = ['visible']
connect() {
this.observer = new IntersectionObserver(([entry]) => {
if (!entry.isIntersecting) return
this.element.classList.add(this.visibleClass)
this.observer.disconnect()
}, { threshold: 0.3 })
this.observer.observe(this.element)
}
disconnect() {
this.observer?.disconnect()
}
}