Browse Source

utils: add getter/setter for scroll position, add browser detectors for firefox/chrome

Micooz 7 years ago
parent
commit
e07c8254e0
1 changed files with 21 additions and 0 deletions
  1. 21 0
      src/utils.js

+ 21 - 0
src/utils.js

@@ -36,11 +36,32 @@ module.exports = {
         return actualLeft - elementScrollLeft;
     },
 
+    getScrollPosition () {
+        return {
+            left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
+            top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
+        };
+    },
+
+    setScrollPosition ({left = 0, top = 0}) {
+        if (this.isFirefox) {
+            document.documentElement.scrollLeft = left;
+            document.documentElement.scrollTop = top;
+        }
+        else {
+            window.scrollTo(left, top);
+        }
+    },
+
     /**
      * check if user is using mobile or not
      */
     isMobile: /mobile/i.test(window.navigator.userAgent),
 
+    isFirefox: /firefox/i.test(window.navigator.userAgent),
+
+    isChrome: /chrome/i.test(window.navigator.userAgent),
+
     storage: {
         set: (key, value) => {
             localStorage.setItem(key, value);