我使用iScroll.js滾動移動頁面上的項目輪播。我發現下面的修復偵聽垂直移動和停止iScroll腳本獲取控制,讓本地垂直滾動發生:iScroll - 保留本機垂直滾動 - 適用於iOS,不適用於Android
onBeforeScrollStart: function(e) {
try {
point = e.touches[0];
pointStartX = point.pageX;
pointStartY = point.pageY;
} catch(e) {}
null;
},
onBeforeScrollMove: function(e) {
try {
deltaX = Math.abs(point.pageX - pointStartX);
deltaY = Math.abs(point.pageY - pointStartY);
if (deltaX >= deltaY) {
e.preventDefault();
} else {
null;
}
} catch(e) {}
}
我使用try {}趕上{}當它在測試的時候有一些問題一個瀏覽器(抱怨點沒有被定義)。
我遇到的問題是,它在iOS上運行良好,在幾個智能設備上測試過,但在Android上並不是那麼好。如果用戶試圖垂直滾動頁面,將手指放在旋轉木馬上,則頁面不會滾動,因爲iScroll仍然有控制權。
任何想法如何讓它在Android上工作,或任何指向它可能會出錯的指針?
編輯:
一些調試,我發現可能爲什麼這不起作用。當用戶在iOS上觸摸屏幕時座標正在更新,但在Android上,只有第一組座標被捕獲。任何想法,爲什麼會這樣?
您是否嘗試過使用'myScroll.disable()'和'myScroll.enable()'? –