aboutsummaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
authorJohann-S <[email protected]>2015-09-27 01:30:11 +0200
committerChris Rebert <[email protected]>2015-10-11 15:10:49 -0700
commit817d997b75d970cc22000f345f68092ed3f0525b (patch)
tree662f82d45a1989aaf3e02d5270550692a87d12cf /js/src
parent9b12e5f495535aa64bcf77703c51b17742ec7f06 (diff)
downloadbootstrap-817d997b75d970cc22000f345f68092ed3f0525b.tar.xz
bootstrap-817d997b75d970cc22000f345f68092ed3f0525b.zip
Use Page Visibility API in Carousel; fixes #17706
Avoids cycling carousels when the page isn't visible. Closes #17710 Refs #15566
Diffstat (limited to 'js/src')
-rw-r--r--js/src/carousel.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/js/src/carousel.js b/js/src/carousel.js
index d8da854a2..8d47fbf9b 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -119,6 +119,13 @@ const Carousel = (($) => {
}
}
+ nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ if (!document.hidden) {
+ this.next()
+ }
+ }
+
prev() {
if (!this._isSliding) {
this._slide(Direction.PREVIOUS)
@@ -152,7 +159,7 @@ const Carousel = (($) => {
if (this._config.interval && !this._isPaused) {
this._interval = setInterval(
- $.proxy(this.next, this), this._config.interval
+ $.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval
)
}
}