收藏
回答

电子签名真机不能用,最后发现canvas在不同真机提供的x值和Y值正负不同问题?

小程序用的电子签名是用canvas做的,代码是两年前的。这两天突然发现不能用了,无法书写了。后来经过查找,发现是touchstart和touchmove提供的e.touches[0].x的值变成了负值。按两年前的代码来说这个值应该为正值。后来就加一个判断,改好发了,公司的测试用三四个同事的手机测了一遍没问题就发上去。但第二天,就有客户说,他的电子签名不能用。我们原来因为是微信版本的问题,但把有问题的真机提升微信版本后,还是不行。后来发现,这个真机上的e.touches[0].x的值是正值,e.touches[0].y的值又变成了负值。反正最后解决了,但我想知道,touchstart和touchmove提供的e.touches[0].x值和e.touches[0].y为什么在不同手机上面得到的正负不同。下面两张图,我第一修改后的,客户反馈的问题机型


回答关注问题邀请回答
收藏

2 个回答

  • 清蒸鱼
    清蒸鱼
    03-06

    能分离一个代码片段出来吗

    03-06
    有用
    回复 2
    • Adam
      Adam
      03-06
      分享一个代码片段出来吗?
      03-06
      回复
    • 清蒸鱼
      清蒸鱼
      03-06回复Adam
      是呀
      03-06
      回复
  • 李强-摩登宝贝&APE
    李强-摩登宝贝&APE
    03-06

    如你所说,只是正负值的问题,你直接把负数取正是不是就可以用了?

    03-06
    有用
    回复 2
    • Adam
      Adam
      03-06
      不行的,不兼容,y轴取负值的坐标值给绝对值就好,但X轴取负值的需要X轴给y坐标值的绝对值,Y轴给x坐标值的绝对值。这个结论只是自己发现的,但不确保所有机型可用,所以想问一下,touchstart和touchmove提供的e.touches[0].x值和e.touches[0].y为什么在不同手机上面得到的正负不同。
      03-06
      回复
    • 李强-摩登宝贝&APE
      李强-摩登宝贝&APE
      03-12回复Adam
      一般这种情况都是把锅甩给厂商去了,只有自己做兼容处理来适应他
      03-12
      回复
登录 后发表内容