岁月_Ben 2019-10-17 17:16 采纳率: 33.3%
浏览 306

ios机型长按识别页面自动向上滚动

ios机型,在第一次加载完毕后,
长按识别二维码,微信内页面超过一屏
滑动到下面,二维码在下方,长按识别而二维码,页面会自动向上滚动

环境:ios机型,超过一屏,二维码在下面,第一次加载完毕识别

如何解决,求思路

  • 写回答

1条回答 默认 最新

  • wusp1994 2023-04-06 13:42
    关注

    这个问题可能与 iOS Safari 上的默认行为有关。在 iOS Safari 上,长按页面元素会触发文本选择行为,并且当选择的文本超出屏幕范围时,页面会自动滚动以使文本可见。在你的情况下,当长按识别二维码时,页面会自动滚动以使二维码可见,这可能导致页面位置发生变化。

    为了解决这个问题,你可以尝试以下几种方法:

    1. 禁用默认行为:你可以尝试在二维码元素上绑定 touchstarttouchmove 事件,并在事件处理函数中调用 preventDefault 方法来阻止默认行为。例如:
    document.getElementById('qrcode').addEventListener('touchstart', function(event) {
      event.preventDefault();
    });
    

    这样做可以阻止文本选择行为,并避免页面滚动。但是,这样做可能会影响用户体验,因为用户将无法选择页面上的文本。

    1. 将二维码放置在页面顶部:你可以尝试将二维码元素放置在页面顶部,这样长按识别二维码时,页面不会发生滚动。例如,你可以使用 CSS 将二维码元素定位在页面顶部:
    #qrcode {
      position: fixed;
      top: 0;
      left: 0;
    }
    

    这样做可以避免页面滚动,但是可能会影响页面布局。

    1. 使用第三方库:你可以使用第三方库来实现二维码识别功能,例如 QuaggaJSZXing。这些库可以让你在不触发默认行为的情况下识别二维码,并且通常具有更好的识别性能和更高的兼容性。

    总的来说,这个问题的解决方案取决于你的具体需求和用户体验要求。你可以根据实际情况选择适合自己的解决方案。

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流