Vue單頁上滑切頁效果

背景厂榛,移動端的h5項目盖矫,頁面之間都是正常點擊切換丽惭,金主爸爸要求某一頁交互效果是:上滑切換到下一頁,而且下一頁會根據邏輯顯示不同的頁面(不同的頁面辈双,不是同一個頁面不同的內容)责掏。所以這種情況就不適用于使用引入組件,而是可以通過vue過渡動畫來實現湃望。

需要上滑的頁面start.vue:

// 首先實現上滑事件
data () {
    return {
      startX: 0, // 鼠標開始點擊的x坐標
      startY: 0 
    },
methods: {
 // 給目標添加事件换衬,處理兼容
  addHandler (element, type, handler) {
      if (element.addEventListener) {
        element.addEventListener(type, handler, false)
      } else if (element.attachEvent) {
        element.attachEvent('on' + type, handler)
      } else {
        element['on' + type] = handler
      }
    },
// 具體的滑動處理
//(此處只需要處理上滑事件,所以處理較簡單证芭,還可以進行封裝瞳浦,處理各種滑動事件)
  handleTouchEvent (event) {
      switch (event.type) {
        case 'touchstart':
          this.startX = event.touches[0].pageX
          this.startY = event.touches[0].pageY
          break
        case 'touchend':
          var spanX = event.changedTouches[0].pageX - this.startX
          var spanY = event.changedTouches[0].pageY - this.startY
          // console.log('spanY', spanY)
          if (spanY < -30) { // 向上
            if (this.userInfo && this.userInfo.firstJoin) {
              this.$router.push('/authen')
            } else {
              this.$router.push('/home')
            }
          }
          if (Math.abs(spanX) > Math.abs(spanY)) {
            // 認定為水平方向滑動
          } else {
            // 認定為垂直方向滑動
          }
          break
        case 'touchmove':
          // 阻止默認行為
          // event.preventDefault()
          break
      }
},
mounted () {
// 給被滑動對象添加事件
    let element = document.getElementById('start')
    this.addHandler(element, 'touchstart', this.handleTouchEvent)
    this.addHandler(element, 'touchend', this.handleTouchEvent)
    this.addHandler(element, 'touchmove', this.handleTouchEvent)
}

上滑事件處理好了,現在已經能夠通過上滑跳轉到下一頁了废士。但是上滑效果還是得有叫潦,不然就顯得很奇怪了途戒。

簡單實現上滑動畫效果:
start.vue:

<template>
<transition name="scaleUp">
  <div class="page" id="start">
    // ......
   <p>上滑切換頁面</p>
  </div>
</transition>
</template>

然后給transition添加動畫:

.scaleUp-enter-active, .scaleUp-leave-active {
  transition: all 0.3s linear;
 }
.scaleUp-leave-active {
  transform: translateY(-100%);
}

然后就簡單的完成想要的效果了次哈,線上兼容木有問題哦~
效果demo揭朝,建議微信掃碼:


h5上滑切頁.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末丽旅,一起剝皮案震驚了整個濱河市近零,隨后出現的幾起案子鹏溯,更是在濱河造成了極大的恐慌它碎,老刑警劉巖券敌,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岖研,死亡現場離奇詭異卿操,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門害淤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來解滓,“玉大人,你說我怎么就攤上這事筝家⊥菘悖” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵溪王,是天一觀的道長腮鞍。 經常有香客問我,道長莹菱,這世上最難降的妖魔是什么移国? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮道伟,結果婚禮上迹缀,老公的妹妹穿的比我還像新娘。我一直安慰自己蜜徽,他們只是感情好祝懂,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拘鞋,像睡著了一般砚蓬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盆色,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天灰蛙,我揣著相機與錄音,去河邊找鬼隔躲。 笑死摩梧,一個胖子當著我的面吹牛,可吹牛的內容都是我干的宣旱。 我是一名探鬼主播仅父,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼响鹃!你這毒婦竟也來了驾霜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤买置,失蹤者是張志新(化名)和其女友劉穎粪糙,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體忿项,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蓉冈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年城舞,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寞酿。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡家夺,死狀恐怖,靈堂內的尸體忽然破棺而出伐弹,到底是詐尸還是另有隱情拉馋,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布惨好,位于F島的核電站煌茴,受9級特大地震影響,放射性物質發(fā)生泄漏日川。R本人自食惡果不足惜蔓腐,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龄句。 院中可真熱鬧回论,春花似錦、人聲如沸分歇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卿樱。三九已至僚害,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間繁调,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工靶草, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹄胰,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓奕翔,卻偏偏與公主長得像裕寨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子派继,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫宾袜、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • # 傳智播客vue 學習## 1. 什么是 Vue.js* Vue 開發(fā)手機 APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,530評論 0 6
  • 嗯哼嗯哼蹦擦擦~~~ 轉載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 4,860評論 0 6
  • “邊界”是一種界限月培,用來區(qū)分你我嘁字、用來區(qū)分內外、用來區(qū)分可否……無論是一個人杉畜、一個組織纪蜒、一個國家,乃至人類社會以...
    月風er閱讀 753評論 0 3
  • 奈何此叠,奈何纯续, 既然介入, 又何必奈何灭袁。 奈何是這么無聊杆烁, 奈何是這么無趣, 奈何是這么無力简卧。 世間多紛擾兔魂, 萬事都...
    黑邪公子閱讀 390評論 0 0