2017-10-13 107 views
0

這裏的實際問題是,我有一個Angular 4應用程序,它有一個D3.js圖表​​,它通過用戶觸摸拖動(綁定'touchstart')來接受輸入。用戶將針拖動到一個值,該值在觸摸端註冊(與'touchend'綁定)。(Angular 4)如何綁定全局觸摸事件處理程序以禁用iOS Safari頁面拖動?

但是在移動瀏覽器上,至少在iOS Safari上,當我觸摸並開始拖動時,整個窗口開始移動......就像拖動到右邊開始顯示上次訪問的頁面。

我會嘗試這是一個修復:Prevent iOS safari from moving web-page window so drag event can happen

但我將需要註冊一個全局事件處理程序角4 - 如何實現這一目標,或者問題什麼更好的建議?

+0

見https://stackoverflow.com/questions/36763141/is-there-any-lifecycle-hook-like-window-onbeforeunload -in-angular2 – kemsky

回答

0

找到了解決這個問題的辦法!收藏此index.html中,以頭或在您的JS腳本中的其他地方定義:

<script> 
    document.ontouchmove = function(event) { 
    event.preventDefault(); 
    } 
</script> 
0

不知道你真正的問題是什麼..

如果你談論的是Safari瀏覽器的歷史手勢(滑動開始關閉屏幕的右側顯示最近訪問過的頁面),那麼似乎它的處理上OS /瀏覽器級別,我們沒有任何回調,請在這裏查看評論: iOS 7 - is there a way to disable the swipe back and forward functionality in Safari?

+0

真正的問題是我已經構建了一個具有量表圖元素的移動應用程序。它有一個用戶可以拖拽的指針指針(touchstart/touchmove/touchend事件)......但是在iOS上,由於這種歷史手勢,Safari橫向拖拽會拖動整個頁面。 – envision

相關問題