iOS 7 Mobile Safari是否限制了touchmove事件

时间:2013-09-19 16:43:21

标签: iphone backbone.js coffeescript touch ios7

我正在构建一个使用移动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

在更新之前,这是流动的和敏感的。更新后,更新位置会有延迟。在我看来,这个事件被苹果公司淘汰或扼杀了。

其他人看到了吗?

2 个答案:

答案 0 :(得分:1)

您是否在7.1 beta上查看过它?我们遇到了touchmove和canvas与7.0 - 7.0.4交互的问题,随着7.1 beta消失了。

答案 1 :(得分:1)

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

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

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