2016-10-13 85 views
2

在Safari上10,通過定義一個簡單的監聽器,其防止默認滾動元件內的touchmove事件時,不默認阻止事件,因爲它的Safari 9和以下(不它也適用於所有主流瀏覽器)。滾動不能默認上touchmove事件防止上iOS10

這是可重複的位置:http://codepen.io/anon/pen/PGRxOv

重現步驟:

  • ,要考慮與可滾動內容的元件(溢出:滾動)。
  • 它添加事件偵聽器touchmouve事件,並調用該事件偵聽器event.preventDefault()

預期結果:

的元件不應該滾動的。

實際結果:

元素仍然是滾動的Safari上10

版本: 的iOS 10.0.2

可能是一個WebKit的問題......我開了一個issue在webkit bug跟蹤器上。

在平均時間,如果任何人有一種變通方法(除了防止touchstart),這將是巨大的:)

我也試圖在聽者return false但它也不起作用。

回答

0

感謝寫這一點,並提出問題 - 它讓我徹底難倒了!

你codepen解決方案似乎並沒有爲我工作,但因爲我已經在這裏找到另一種解決辦法:https://github.com/metafizzy/flickity/issues/457

這是他們的解決方案:

window.addEventListener('touchmove', function() {}) 

感覺非常哈克,但一直爲我的情況。

我希望這可以幫助其他人感到沮喪。