zoukankan      html  css  js  c++  java
  • vue——利用v-touch实现页面假左右切换效果

    参考:https://www.cnblogs.com/mz-2015/p/9577100.html

    1. 安装v-touch: (vue2.0之后的要使用next分支才行,之前的使用master分支即可)

    npm insall vue-touch@next --save   

    2. main.js中引入,注意:这样打包后文件里的vendor.js会引入hammer.js(手势检测)

    import VueTouch from 'vue-touch';
    Vue.use(VueTouch, {
      name: 'v-touch'
    });
    VueTouch.config.swipe = {
      threshold: 10 //手指左右滑动触发事件距离
    }

    3. 组件中使用:

    <template>
      <div class="hello">
        <v-touch @swipeleft="swiperDirection(1)" @swiperight="swiperDirection(2)" class="v-touch wrapper" :class="transClass">
          <div class="menu-container" ref="menuContainer">
            {{msg}}
          </div>
        </v-touch>
        <div v-show="isLoading" class="modal-loading"><span class="loadingTxt">正在加载中...</span></div>
      </div>
    </template>
    
    <script>
      export default {
        name: 'HelloWorld',
        data() {
          return {
            transClass: '',
            isLoading: false,
            msg: '页面1'
          }
        },
        methods: {
          swiperDirection: function(i) { //1向左滑2向右滑
            let _this = this;
            if (i == 1) {
              _this.transClass = 'swipe-left';
            } else {
              _this.transClass = 'swipe-right';
            }
            setTimeout(function() {
              _this.isLoading = true;
              _this.getInfo();
            }, 500); //因为动画时间需要0.5s
          },
          getInfo() {
            let _this = this;
            _this.msg = '';
            //可调接口,获取上一条/下一条数据后,再做以下操作
            _this.msg = '页面2';
            _this.isLoading = false; //不调接口效果可能不明显
            _this.transClass = '';
          }
        }
      }
    </script>
    
    <style scoped>
      .v-touch{
        touch-action: pan-y !important; //解决页面垂直滚动失效问题
      }
    .hello, .wrapper, .menu-container, .modal-loading { 100%; height: 100%; } .wrapper { padding-top: 100px; font-size: 20px; background-color: lightcoral; color: #ffffff; } .modal-loading { position: fixed; top: 0; left: 0; color: #ffffff; background-color: rgba(1, 1, 1, 0.8); } .loadingTxt { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .swipe-left { transition: all 0.5s; transform: translateX(-100%); } .swipe-right { transition: all 0.5s; transform: translateX(100%); } </style>
  • 相关阅读:
    1,JAVA图形
    作业(2)
    作业(1)
    作业
    2.15 (第二次作业)
    60页2.6 (第二次作业)
    1.12 (第一次作业)
    27页1.8(第一次作业)
    26页1.3(第一次作业)
    作业第六次
  • 原文地址:https://www.cnblogs.com/linjiangxian/p/12622926.html
Copyright © 2011-2022 走看看