zoukankan      html  css  js  c++  java
  • vux scroller在iOS13上,一停止滑动就跳到顶部

    转载:https://blog.csdn.net/sllailcp/article/details/102502452

    今天客户反馈的问题,说在最新版的iOS上(iOS13),滑动列表,滑完就会跳到顶部,然后去查了下vux的文档,没有解决办法,百度了一大堆,也没有相关问题,只能看下源码到底是哪除了问题。

    经过一层层的查找,终于发现是ios13上面获取transform的结果跟老版本的结果不一样

    // 老版本:
    'matrix(1, -2.4492935982947064, 2.4492935982947064, 1, 0, 19.48200035095215)'
     
    //新版本
    'matrix(1, -2.4492935982947064e-16, 2.4492935982947064e-16, 1, 0, 19.48200035095215)'
     

    而vux-xscroll的正则是这么写的  

    window.getComputedStyle(this.container)[transform].match(/[-d.*d*]+/g)

    陪配最新版本的ios会出现["1", "-2.4492935982947064", "-16", "2.4492935982947064", "-16", "1", "0", "19.48200035095215"]

    然后就导致程序错乱。

    校验的代码具体目录是在 ode_modules\_vux-xscroll@3.1.12@vux-xscrolluildcmdsimulate-scroll.js下的getScrollTop方法

    解决办法:将 ode_modules\_vux-xscroll@3.1.12@vux-xscrolluildcmdsimulate-scroll.js下的getScrollTop方法里面的正则表达式替换成下面的就可以了。

      getScrollTop: function() {
        // var transY = window.getComputedStyle(this.container)[transform].match(/[-d.*d*]+/g);
        var transY = window.getComputedStyle(this.container)[transform].match(/[-d.*d*e-d]+/g);
        return transY ? Math.round(transY[5]) === 0 ? 0 : -Math.round(transY[5]) : 0;
      },

    如果有什么好的解决方法,可以告诉博主哦。

  • 相关阅读:
    Smart Client智能客户端技术
    SaaS介绍
    SaaS介绍
    开源软件介绍
    SaaS介绍
    SaaS介绍
    开源软件介绍
    开源软件介绍
    GPUCUDA安装
    Linux 下的段错误(Segmentation fault)调试方法
  • 原文地址:https://www.cnblogs.com/darkbluelove/p/11655854.html
Copyright © 2011-2022 走看看