0

我正在构建一个使用移动 Safari 访问的 Web 应用程序。

升级到 iOS7 后,我发现 touchmove 事件的位置更新频率明显降低。有人可以确认此事件已被限制,最好是带有文章、解释或错误报告的链接?

我使用的代码非常简单——它只是跟随touchmove并使用该位置来更新 div 的高度。这用于创建自定义滑块/填充栏 UI。

View = Backbone.View.extend
  events:
    touchmove:  'onDragMove'
  onDragMove: (event) ->
    event.preventDefault()
    @_follow event
  _follow: (event) ->
    @windowHeight = @windowHeight || $(window).height() # Don't calculate window height every drag increment :)
    @personHeight = @personHeight || @$el.height()
    @$fill =        @$fill || @$(_fillSel)
    touch = event.originalEvent.touches[0] || event.originalEvent.changedTouches[0]
    y = touch.pageY
    height = @windowHeight - y
    percentage = Math.round height / @personHeight * 100
    percentage = @_boundValue percentage
    @$fill.css height: height
    percentage

在更新之前,这是流畅且响应迅速的。更新后,位置更新会有延迟。在我看来,该事件已被 Apple 抑制或抑制。

还有人看到这个吗?

4

2 回答 2

1

我在使用 javascript 滚动实现时遇到了同样的问题。

我找到了使用类似问题中提供的一些 CSS 的解决方案 :-):

https://stackoverflow.com/a/19061390/2553142

于 2013-11-25T10:28:05.417 回答
1

你在 7.1 beta 上检查了吗?我们在 7.0 - 7.0.4 中遇到了 touchmove 和画布交互问题,而在 7.1 beta 中这些问题消失了。

于 2013-11-22T17:15:14.610 回答