diff options
author | Lukas Eipert <leipert@gitlab.com> | 2018-11-26 14:26:23 +0100 |
---|---|---|
committer | Lukas Eipert <leipert@gitlab.com> | 2018-11-26 14:29:34 +0100 |
commit | ab83c1e419b25436e76ed94f06e056f0bb1f4d53 (patch) | |
tree | efcd429d8742ab15e962736bf2c36c0be5c3147e | |
parent | 1c1b7a820db168974289039acd9f1f89664b684e (diff) | |
download | gitlab-ce-ab83c1e419b25436e76ed94f06e056f0bb1f4d53.tar.gz |
Use intersectionRatio to determine intersection
Some older browsers do not ship with isIntersecting, while they already
have IntersectionObserver support. We make use of `intersectionRatio`
now to fix the Lazy Loader for those browsers.
-rw-r--r-- | app/assets/javascripts/lazy_loader.js | 4 | ||||
-rw-r--r-- | changelogs/unreleased/54407-fix-limited-intersection-observers.yml | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/app/assets/javascripts/lazy_loader.js b/app/assets/javascripts/lazy_loader.js index af50ea9d6c2..ee01a73a6e8 100644 --- a/app/assets/javascripts/lazy_loader.js +++ b/app/assets/javascripts/lazy_loader.js @@ -91,7 +91,9 @@ export default class LazyLoader { onIntersection = entries => { entries.forEach(entry => { - if (entry.isIntersecting) { + // We are using `intersectionRatio > 0` over `isIntersecting`, as some browsers did not ship the latter + // See: https://gitlab.com/gitlab-org/gitlab-ce/issues/54407 + if (entry.intersectionRatio > 0) { this.intersectionObserver.unobserve(entry.target); this.lazyImages.push(entry.target); } diff --git a/changelogs/unreleased/54407-fix-limited-intersection-observers.yml b/changelogs/unreleased/54407-fix-limited-intersection-observers.yml new file mode 100644 index 00000000000..2c2bedb170b --- /dev/null +++ b/changelogs/unreleased/54407-fix-limited-intersection-observers.yml @@ -0,0 +1,5 @@ +--- +title: Fix Image Lazy Loader for some older browsers +merge_request: +author: +type: fixed |