在vue 中 使用 mint-ui 的 Picker 選擇器 組件,在下滑或上滑和手機瀏覽器原生滑動事件有衝突(一般在 IOS 上 會有這個現象),能夠監聽 touchmove 事件,來阻止默認事件,

參考 http://iscrolljs.com/  這個網站網站

代碼以下:spa

function isPassive () {
  var supportsPassiveOption = false
  try {
    addEventListener('test', null, Object.defineProperty({}, 'passive', {
      get: function () {
        supportsPassiveOption = true
      }
    }))
  } catch (e) {}
  return supportsPassiveOption
}
function preventDefaultFunc (e) {
  e.preventDefault()
}
export function preventTouchmove (onoff) {
  if (onoff) {
    document.body.addEventListener('touchmove', preventDefaultFunc, isPassive() ? {
      capture: false,
      passive: false
    } : false)
  } else {
    console.log('wawawwaawa')
    document.body.removeEventListener('touchmove', preventDefaultFunc, isPassive() ? {
      capture: false,
      passive: false
    } : false)
  }
}

而後經過 code

import { preventTouchmove } from 'utils/common'

來導入這個方法,而後使用,onoff 是開關,來傳 布爾值blog

preventTouchmove(true/false)
相關文章
相關標籤/搜索