瀏覽代碼

:recycle: storing on component state and setting to footer

tags/0.9.0
J 4 年之前
父節點
當前提交
0affe2e611
共有 1 個檔案被更改,包括 8 行新增21 行删除
  1. 8
    21
      vue-theme/src/pages/list.vue

+ 8
- 21
vue-theme/src/pages/list.vue 查看文件

48
         return {
48
         return {
49
             page: 0,
49
             page: 0,
50
             perPage: 6,
50
             perPage: 6,
51
-            observer: null,
52
             keepFetching: true,
51
             keepFetching: true,
53
-            isFetching: false
54
         }
52
         }
55
     },
53
     },
56
     computed: {
54
     computed: {
148
             const footerEl = document.querySelector(".footer-wrapper footer")
146
             const footerEl = document.querySelector(".footer-wrapper footer")
149
             // console.warn('attach to: ',footerEl)
147
             // console.warn('attach to: ',footerEl)
150
             if(!footerEl) return
148
             if(!footerEl) return
151
-            const onIntersect = entries => {
152
-                // if(this.isFetching) return
153
-
154
-                // this.isFetching = true
155
-                entries.forEach(({ target, isIntersecting }) => {
156
-                    if (!isIntersecting) return
157
-                    this.observer.unobserve(target)
158
-                    
159
-                    setTimeout(() => {
160
-                        console.log("intersected:", target)
161
-                    }, 1000)
149
+
150
+            const onIntersect = (entries, observer) => {
151
+                entries.forEach(entry => {
152
+                    if (!entry.isIntersecting) return
153
+                    console.log("intersected:", entry)
162
                 })
154
                 })
163
-                // this.isFetching = false
164
-                // this.loadMorePosts()
165
-                // console.log('loaded...', this.loadMorePosts)
166
-                // console.log('cb this:', this)
167
             }
155
             }
168
             this.observer = new IntersectionObserver(
156
             this.observer = new IntersectionObserver(
169
                 onIntersect,
157
                 onIntersect,
170
                 {
158
                 {
171
-                    root: this.$el,
172
-                    threshold: 1.0,
159
+                    root: footerEl,
160
+                    rootMargin: '0px',
161
+                    threshold: 1.0
173
                 }
162
                 }
174
             )
163
             )
175
-            this.observer.observe(footerEl)
176
         },
164
         },
177
         unsetIntersectionLoader(type) {
165
         unsetIntersectionLoader(type) {
178
             if(!type) return console.error('cannot unset intersection handler for undefined type...')
166
             if(!type) return console.error('cannot unset intersection handler for undefined type...')
179
             console.warn('unsetting intersection handler for:', type)
167
             console.warn('unsetting intersection handler for:', type)
180
-            window.removeEventListener("load", e => {}, false)
181
         },
168
         },
182
         clearAndInitPostList() {
169
         clearAndInitPostList() {
183
             this.page = 0
170
             this.page = 0

Loading…
取消
儲存