浏览代码

解决 其他页面依然判断滚动floorbar并报错问题

yangc 8 年之前
父节点
当前提交
0f6f5e5e8f
共有 1 个文件被更改,包括 18 次插入16 次删除
  1. 18 16
      components/home/floor/FloorBar.vue

+ 18 - 16
components/home/floor/FloorBar.vue

@@ -28,24 +28,26 @@
     },
     methods: {
       onScroll () {
-        let scrolled = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
-        let floors = document.querySelectorAll('.floor')
-        let barOffset = document.querySelector('.floor-bar').offsetTop
-        if (floors[0].offsetTop === 0) {
-          this.visible = scrolled >= floors[0].offsetTop + this.floor_scrollTop - barOffset && scrolled <= floors[floors.length - 1].offsetTop + floors[floors.length - 1].offsetHeight - barOffset - document.querySelector('.floor-bar').offsetHeight + this.floor_scrollTop
-          if (this.visible) {
-            for (let i = 0; i < floors.length; i++) {
-              if (barOffset >= floors[i].offsetTop + this.floor_scrollTop - scrolled + 60) {
-                this.activeFloor = i
+        if (window.location.pathname === '/') {
+          let scrolled = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
+          let floors = document.querySelectorAll('.floor')
+          let barOffset = document.querySelector('.floor-bar').offsetTop
+          if (floors[0].offsetTop === 0) {
+            this.visible = scrolled >= floors[0].offsetTop + this.floor_scrollTop - barOffset && scrolled <= floors[floors.length - 1].offsetTop + floors[floors.length - 1].offsetHeight - barOffset - document.querySelector('.floor-bar').offsetHeight + this.floor_scrollTop
+            if (this.visible) {
+              for (let i = 0; i < floors.length; i++) {
+                if (barOffset >= floors[i].offsetTop + this.floor_scrollTop - scrolled + 60) {
+                  this.activeFloor = i
+                }
               }
             }
-          }
-        } else {
-          this.visible = scrolled >= floors[0].offsetTop - barOffset + 40 && scrolled <= floors[floors.length - 1].offsetTop + floors[floors.length - 1].offsetHeight - barOffset - document.querySelector('.floor-bar').offsetHeight
-          if (this.visible) {
-            for (let i = 0; i < floors.length; i++) {
-              if (barOffset >= floors[i].offsetTop - scrolled + 60) {
-                this.activeFloor = i
+          } else {
+            this.visible = scrolled >= floors[0].offsetTop - barOffset + 40 && scrolled <= floors[floors.length - 1].offsetTop + floors[floors.length - 1].offsetHeight - barOffset - document.querySelector('.floor-bar').offsetHeight
+            if (this.visible) {
+              for (let i = 0; i < floors.length; i++) {
+                if (barOffset >= floors[i].offsetTop - scrolled + 60) {
+                  this.activeFloor = i
+                }
               }
             }
           }