2
在下面的代碼中,我添加了三個應該解釋問題的註釋。總之:我想知道如何在已經設置時禁用e.preventDefault();
?iScroll 4 - 取消preventDefault()
var startY;
myScroll = new iScroll(DOMElement, {
snap: 'li',
bounce: false,
bounceLock: false,
momentum: false,
hScrollbar: false,
vScrollbar: false,
hScroll: true,
vScroll: false,
wheelAction: 'scroll',
onBeforeScrollStart: function(e){
startY = e.pageY;
// By default it's advisable to disable browser's scroll
e.preventDefault();
},
onScrollStart: function(){ },
onScrollMove: function(e){
// But here I want to enable browser's functionality if user
// explicitly demands this (i.e. tries to scroll vertically)
if(startY >= e.pageY+70 || startY <= e.pageY-70){
console.log('test');
//alert('test');
console.log(e);
// However, I don't know how to restore this functionality
// Touch device detects 'test' alert correctly and this is
// where I'm stuck.
}
},
onScrollEnd: function(){ },
onRefresh: function(){ },
onDestroy: function(){ },
});
任何幫助將不勝感激!
我試過'onScrollMove',但是一旦'preventDefault'發生了,它永遠不會想要返回瀏覽器功能。 – Atadj
我改了代碼,還沒有測試。但我希望它能起作用。 – Ikrom
感謝您提供更新的解決方案!它無法工作,因爲我們無法檢測用戶是否想垂直滾動(並重新獲得瀏覽器的功能)。就像在iPhone上的「App Store」中一樣 - 您可以水平滾動,但在一定數量的像素(頂部/下部)之後,您還可以重新獲得垂直滾動。我需要這個功能,如果我沒有弄錯,只能在'move'事件中檢測到這個功能:)用戶水平滾動旋轉木馬,當他不想進一步滾動時,他必須重新獲得瀏覽器的垂直滾動(但「preventDefault '阻止它,因此用戶卡住了)。 – Atadj