阻止蘋果xs max瀏覽器頁面整體滾動

2021-09-19 20:05:21 字數 673 閱讀 7664

今天發現乙個神奇的現象,在蘋果xs max型號手機上滑動乙個列表頁面,整個頁面(包括頂部fix的頭元件)都在滑動,網上稱之為橡皮筋效果。

頁面的滾動看起來比較亂,其實知道原理可以分析出:

外層的滾動(上下會出白色無內容空間)是由於body在touchmove時發生了滾動,

內層的滾動(如列表內容在頁面空間內滑動)是由於頁面元件在touchmove時發生了滾動。

其實際上是個冒泡問題,解決辦法是阻止body的滾動,直接上**:

document.body.

addeventlistener

("touchmove"

,function

(e),

)

dom 規範做了修訂,addeventlistener原有的第三個引數usecapture可以傳乙個物件

passive的原意是順從,即執行瀏覽器的預設事件(本文中就是touchmove時頁面預設滾動),passive: false即阻止瀏覽器預設事件。

意外收穫:

在解決問題的過程中學習到,***的執行是耗時的(哪怕是空的***),這也是passive的作用,瀏覽器不需要在執行完***後執行預設事件,滑動等效果會更加順暢。

參考:

vue vuex router實現阻止瀏覽器回退

場景說明,如圖,首頁有個列表,點選加號後,會彈出乙個表單,希望實現在顯示表單後,點選回退,不是改變路由或者返回前一頁,而是關閉彈出的表單。index.vue 頁面 和 form.vue 元件 用vuex的store作為 頁面和元件的通訊 import vuex from vuex const sto...

瀏覽器對新視窗開啟頁面的阻止情況

事情是這樣的 我們後台人員有乙個需求,希望在ajax請求成功後的 函式裡,新視窗開啟乙個頁面。示例 如下 btn on click function success function 有三種辦法繞過這個問題,第一種方法 如下 btn on click function success functio...

阻止瀏覽器記住密碼功能

一 關於瀏覽器記住密碼功能 可以參考 二 如何控制瀏覽器不提示 是否記住密碼 呢 解決方案1 1.關閉表單的自動完成功能 autocomplete false,關於參考 autocomplete屬性 2.延遲設定密碼域,即在頁面載入成功後 將輸入框的type password 示例 div clas...