summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Eipert <leipert@gitlab.com>2018-11-26 14:26:23 +0100
committerLukas Eipert <leipert@gitlab.com>2018-11-26 14:29:34 +0100
commitab83c1e419b25436e76ed94f06e056f0bb1f4d53 (patch)
treeefcd429d8742ab15e962736bf2c36c0be5c3147e
parent1c1b7a820db168974289039acd9f1f89664b684e (diff)
downloadgitlab-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.js4
-rw-r--r--changelogs/unreleased/54407-fix-limited-intersection-observers.yml5
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