hookehuyr

✨ feat: 重写返回点击位置功能

...@@ -66,6 +66,7 @@ ...@@ -66,6 +66,7 @@
66 </template> 66 </template>
67 </van-list> 67 </van-list>
68 </div> 68 </div>
69 + <div style="height: 2rem;"></div>
69 <van-empty v-if="emptyStatus" 70 <van-empty v-if="emptyStatus"
70 class="custom-image" 71 class="custom-image"
71 :image="no_image" 72 :image="no_image"
...@@ -308,25 +309,31 @@ onActivated(() => { // keepAlive 重置后执行回调 ...@@ -308,25 +309,31 @@ onActivated(() => { // keepAlive 重置后执行回调
308 }) 309 })
309 // 触发更新 310 // 触发更新
310 prod_list.value = arr.value; 311 prod_list.value = arr.value;
311 - /** 312 +
312 - * 判断微信环境 313 + const { scrollTop } = storeToRefs(store);
313 - */ 314 + // 嵌套滚动,执行两个,先滚外面再滚里面
314 - if (wxInfo().isiOS || wxInfo().isAndroid) { 315 + _.times(2, () => {
315 - // TAG: 手机微信浏览器位置变动了,需要手动调整位置,但是无刷新是起作用的 316 + $("html,body").animate({ "scrollTop": String(scrollTop.value) + 'px' });
316 - const { scrollTop } = storeToRefs(store); 317 + });
317 - if (scrollTop.value) { 318 +
318 - $("html,body").animate({ "scrollTop": scrollTop.value }) 319 + // 监听记录滚动位置
320 + window.addEventListener('scroll',()=>{
321 + if (window.scrollY) {
322 + store.changeScrollTop(window.scrollY)
319 } 323 }
320 - window.addEventListener('scroll',()=>{ 324 + });
321 - if (window.scrollY) { 325 +
322 - store.changeScrollTop(window.scrollY)
323 - }
324 - });
325 - }
326 // 更新页面名称,因为不刷新副作用~ 326 // 更新页面名称,因为不刷新副作用~
327 document.title = $route.meta.title; 327 document.title = $route.meta.title;
328 }); 328 });
329 329
330 +// 监听记录滚动位置
331 +window.addEventListener('scroll',()=>{
332 + if (window.scrollY) {
333 + store.changeScrollTop(window.scrollY)
334 + }
335 +});
336 +
330 /*********************************************************/ 337 /*********************************************************/
331 338
332 </script> 339 </script>
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
16 import VideoCard from '@/components/VideoCard/index.vue' 16 import VideoCard from '@/components/VideoCard/index.vue'
17 import Cookies from 'js-cookie' 17 import Cookies from 'js-cookie'
18 import no_image from '@images/que-shuju@2x.png' 18 import no_image from '@images/que-shuju@2x.png'
19 +import { mainStore } from '@/store'
20 +import { storeToRefs } from 'pinia'
19 21
20 import { ref } from 'vue' 22 import { ref } from 'vue'
21 import axios from '@/utils/axios'; 23 import axios from '@/utils/axios';
...@@ -24,18 +26,19 @@ import $ from 'jquery' ...@@ -24,18 +26,19 @@ import $ from 'jquery'
24 import _ from 'lodash' 26 import _ from 'lodash'
25 27
26 /******************** 返回点击位置 ********************/ 28 /******************** 返回点击位置 ********************/
27 -window.addEventListener('scroll', () => { 29 +const store = mainStore();
30 +const { scrollTopCollection } = storeToRefs(store);
31 +// 嵌套滚动,执行两个,先滚外面再滚里面
32 +_.times(2, () => {
33 + $("html,body").animate({ "scrollTop": String(scrollTopCollection.value) + 'px' });
34 +});
35 +
36 +// 监听记录滚动位置
37 +window.addEventListener('scroll',()=>{
28 if (window.scrollY) { 38 if (window.scrollY) {
29 - Cookies.set('scrollTopCollection', window.scrollY); 39 + store.changeScrollTopCollection(window.scrollY)
30 } 40 }
31 -}) 41 +});
32 -
33 -const scrollTopCollection = Cookies.get('scrollTopCollection') ? Number(Cookies.get('scrollTopCollection')) : 0;
34 -if (scrollTopCollection) {
35 - setTimeout(() => {
36 - $("html,body").animate({ "scrollTop": scrollTopCollection })
37 - }, 500)
38 -}
39 /*****************************************************/ 42 /*****************************************************/
40 43
41 // 处理书籍下作品列表 44 // 处理书籍下作品列表
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
16 import VideoCard from '@/components/VideoCard/index.vue' 16 import VideoCard from '@/components/VideoCard/index.vue'
17 import Cookies from 'js-cookie' 17 import Cookies from 'js-cookie'
18 import no_image from '@images/que-shuju@2x.png' 18 import no_image from '@images/que-shuju@2x.png'
19 +import { mainStore } from '@/store'
20 +import { storeToRefs } from 'pinia'
19 21
20 import { ref } from 'vue' 22 import { ref } from 'vue'
21 import axios from '@/utils/axios'; 23 import axios from '@/utils/axios';
...@@ -24,18 +26,19 @@ import $ from 'jquery' ...@@ -24,18 +26,19 @@ import $ from 'jquery'
24 import _ from 'lodash' 26 import _ from 'lodash'
25 27
26 /******************** 返回点击位置 ********************/ 28 /******************** 返回点击位置 ********************/
27 -window.addEventListener('scroll', () => { 29 +const store = mainStore();
30 +const { scrollTopLike } = storeToRefs(store);
31 +// 嵌套滚动,执行两个,先滚外面再滚里面
32 +_.times(2, () => {
33 + $("html,body").animate({ "scrollTop": String(scrollTopLike.value) + 'px' });
34 +});
35 +
36 +// 监听记录滚动位置
37 +window.addEventListener('scroll',()=>{
28 if (window.scrollY) { 38 if (window.scrollY) {
29 - Cookies.set('scrollTopLike', window.scrollY); 39 + store.changeScrollTopLike(window.scrollY)
30 } 40 }
31 -}) 41 +});
32 -
33 -const scrollTopLike = Cookies.get('scrollTopLike') ? Number(Cookies.get('scrollTopLike')) : 0;
34 -if (scrollTopLike) {
35 - setTimeout(() => {
36 - $("html,body").animate({ "scrollTop": scrollTopLike })
37 - }, 500)
38 -}
39 /*****************************************************/ 42 /*****************************************************/
40 43
41 // 处理书籍下作品列表 44 // 处理书籍下作品列表
......
...@@ -58,20 +58,25 @@ onActivated(() => { // keepAlive 重置后执行回调 ...@@ -58,20 +58,25 @@ onActivated(() => { // keepAlive 重置后执行回调
58 }) 58 })
59 // 触发更新 59 // 触发更新
60 prod_list.value = arr.value; 60 prod_list.value = arr.value;
61 - /** 61 +
62 - * 判断微信环境 62 + const { scrollTop } = storeToRefs(store);
63 - */ 63 + // 嵌套滚动,执行两个,先滚外面再滚里面
64 - if (wxInfo().isiOS || wxInfo().isAndroid) { 64 + _.times(2, () => {
65 - // TAG: 手机微信浏览器位置变动了,需要手动调整位置,但是无刷新是起作用的 65 + $("html,body").animate({ "scrollTop": String(scrollTop.value) + 'px' });
66 - const { scrollTop } = storeToRefs(store); 66 + });
67 - if (scrollTop.value) { 67 +
68 - $("html,body").animate({ "scrollTop": scrollTop.value }) 68 + // 监听记录滚动位置
69 + window.addEventListener('scroll',()=>{
70 + if (window.scrollY) {
71 + store.changeScrollTop(window.scrollY)
69 } 72 }
70 - window.addEventListener('scroll',()=>{ 73 + });
71 - if (window.scrollY) { 74 +});
72 - store.changeScrollTop(window.scrollY) 75 +
73 - } 76 +// 监听记录滚动位置
74 - }); 77 +window.addEventListener('scroll',()=>{
78 + if (window.scrollY) {
79 + store.changeScrollTop(window.scrollY)
75 } 80 }
76 }); 81 });
77 82
......