liyongli hai 1 ano
pai
achega
efe37df7a7
Modificáronse 1 ficheiros con 13 adicións e 16 borrados
  1. 13 16
      src/view/schedule/index.vue

+ 13 - 16
src/view/schedule/index.vue

@@ -141,26 +141,31 @@ const isChangePage = cha => {
   return false;
 };
 let time = Date.now();
+let c = 0;
 const touchstart = e => {
-    time = Date.now();
+  time = Date.now();
+  c = main.value.scrollTop < 5;
   startY = e.changedTouches[0].clientY;
 };
 
 const touchend = e => {
   const cha = startY - e.changedTouches[0].clientY;
-  if(Date.now() - time < 50) return
+  if (Date.now() - time < 50) return;
   if (!isChangePage(cha)) return;
   //  cha > 0    向上滑动手指
   //  cha < 0    向下滑动手指
-  if (cha <= 0 && cha >= -50) return;
-  if (cha > 0 && cha < 100) return;
+  //  初始位置滚动为0的,则判断距离25即可
+  if (Math.pow(cha, 2) < 40000 && !c) return;
   // 距离足够则滑动到下一页;
   let n = cha > 0 ? 1 : -1;
   let dn = n + page.value;
   let len = 9;
   isUp.value = n === 1;
-  if (dn < 0) return (dn = len);
-  if (dn > len) return (dn = 0);
+  //   if (dn < 0) dn = len;
+  //   if (dn > len) dn = 0;
+  if (dn < 0) return;
+  if (dn > len) return;
+
   page.value = dn;
   nextTick(() => {
     main.value.scrollTop = 0;
@@ -168,16 +173,8 @@ const touchend = e => {
 };
 
 const touchmove = e => {
-  let nodes = main.value.childNodes || [];
-  let sondiv = null;
-  for (let i = 0; i < nodes.length; i++) {
-    const ele = nodes[i];
-    if (ele.localName !== 'div') continue;
-    if (sondiv) break;
-    sondiv = ele;
-  }
-  let h = main.value.offsetHeight + main.value.scrollTop;
-  if (main.value.scrollTop <= 1 && h > sondiv.offsetHeight + 10) e.preventDefault();
+  const cha = startY - e.changedTouches[0].clientY;
+  if (main.value.scrollTop <= 1 && cha < 0) e.preventDefault();
 };
 </script>
 <style lang="scss">