Added minimal polyfill for IntersectionObserver

This commit is contained in:
Eduard Urbach 2017-06-24 16:28:16 +02:00
parent b6c4968c6c
commit 49a6d8b7fa

View File

@ -9,17 +9,30 @@ export class AnimeNotifier {
constructor(app: Application) {
this.app = app
this.visibilityObserver = new IntersectionObserver(
entries => {
for(let entry of entries) {
if(entry.intersectionRatio > 0) {
entry.target["became visible"]()
this.visibilityObserver.unobserve(entry.target)
if("IntersectionObserver" in window) {
// Enable lazy load
this.visibilityObserver = new IntersectionObserver(
entries => {
for(let entry of entries) {
if(entry.intersectionRatio > 0) {
entry.target["became visible"]()
this.visibilityObserver.unobserve(entry.target)
}
}
}
},
{}
)
},
{}
)
} else {
// Disable lazy load feature
this.visibilityObserver = {
disconnect: () => {},
observe: (elem: HTMLElement) => {
elem["became visible"]()
},
unobserve: (elem: HTMLElement) => {}
} as IntersectionObserver
}
}
onReadyStateChange() {