用例: - 如果用戶正在滾動內部div,則在內部div末端達到時不應滾動外部div。無法停止內部div的結束時外部div的滾動
如果內部div已經達到最後,下面的代碼可以很好地工作。即touchstart/touchmove事件在內部div達到結束之後觸發。
但是,如果我不解除觸摸並保持滾動,並且如果在此過程中內部div的末端已達到,它會開始滾動外部div。
$('body').find('.scrollableDiv').on(
{
'touchstart' : function(e) {
touchStartEvent = e;
},
'touchmove' : function(e) {
e.stopImmediatePropagation();
$this = $(this);
if ((e.originalEvent.touches[0].pageY > touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop == 0) ||
(e.originalEvent.touches[0].pageY < touchStartEvent.originalEvent.touches[0].pageY && this.scrollTop + this.offsetHeight >= this.scrollHeight)){
e.preventDefault();
}
},
});
一旦達到內部div的末端,我該如何停止滾動? 我想在Android設備上的瀏覽器上實現此目的。在這方面有人可以幫助我嗎?
注意:用戶甚至應該能夠滾動外部div。
在此先感謝。
這在我看來是一個壞主意。您試圖編寫屬於Web瀏覽器本身的代碼,以便在您的網站上以與其他網站上的工作方式不一致的方式更改瀏覽器的用戶界面,方法是禁用用戶可能需要的功能。 –
對不起,如果我沒有說清楚我的觀點。其實我試圖給一個功能,用戶可以滾動div和獨立滾動內部div應該永遠不滾動外部div。考慮一種情況,即用戶在內部div中快速滾動,一旦內部div到達結束頁面就會導致頁面滾動,然後用戶必須再次滾動頁面以使內部div進入可見視圖。這不是一個糟糕的用戶體驗嗎? – Sashwat
Mozilla似乎同意你的觀點,因爲Firefox不會在任何平臺上執行此操作,無論是在桌面上(使用滾輪)還是在移動設備上(使用手指)。蘋果似乎不同意你的看法。我認爲這可能是決定所屬的地方,並試圖使其在不同網站上以不同的方式工作,這本身就是糟糕的用戶體驗。 –