generated from boboko/starter
21 lines
495 B
JavaScript
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()
|
|
}
|
|
}
|