今天發現乙個神奇的現象,在蘋果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...