gpt4 book ai didi

javascript - 在 iOS 7 Safari 中,如何通过边缘滑动与后退/前进按钮区分 popstate 事件?

转载 作者:技术小花猫 更新时间:2023-10-29 11:08:10 32 4
gpt4 key购买 nike

在 iOS 7 Safari 中,现在有两种导航后退/前进的方法——使用底部传统的后退/前进按钮箭头或从屏幕边缘滑动。我在我的 ajax 应用程序中使用动画在页面之间进行转换,但如果用户通过边缘滑动进行导航,我不想触发该转换,因为这本身就是一个动画。

但是,两种类型的导航的 popstate 事件对象似乎是相同的——有什么方法可以区分这两种类型的用户导航,以便我们做出相应的响应吗?

更新:我能够使用(似乎是)iOS7 Safari 中的错误来正确检测边缘滑动与后退按钮点击。该错误是在使用边缘滑动时不会触发 touchend 事件(直到下一个触摸事件)(但 touchstart 和 touchmove 是)。所以我设置了一个 shouldAnimate 标志并在 touchmove 上禁用它——然后如果该标志被禁用并且出现 popstate,我知道这是一个边缘滑动。

它在 99% 的时间里都是正确的——唯一可能失败的情况是当用户边缘滑动部分然后松开并让当前页面弹回原位(此时我的旗帜仍然会被禁用)然后点击后退按钮(不会触发触摸事件)。为了处理最后一个 [edge] 情况,我在 touchmove 上设置了一个计时器,以在 50 毫秒后重新启用标志。

是的,它是“肮脏的”,但现在它几乎在所有情况下都能满足我的需求,所以我对它没意见——直到 Apple 修复了这个错误,但希望他们也会在 popstate 事件对象中提供一个指示器告诉我们它是哪种导航。

最佳答案

简短而悲伤的回答:不。这种后退/前进滑动不会传播到实际页面,而是发生在操作系统级别。

关于javascript - 在 iOS 7 Safari 中,如何通过边缘滑动与后退/前进按钮区分 popstate 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19662434/

32 4 1
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com