vue整屏滑动组件

Posted 阿宜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue整屏滑动组件相关的知识,希望对你有一定的参考价值。

前几天做了vue整屏滑动,因为我的容器中使用了v-for所以我在updated中获取dom;

      updated(){      

    var outer = this.$refs.outerdiv;  //获取视图容器
    var inner = this.$refs.content;  //获取包裹内容容器
    var innercont = this.$refs.innercont;  //获取滑动内容
    var x1=0,x2=0,index=0,innercontw=innercont.offsetHeight;  //初始化坐标点数据,内容下标,滑动高度
    outer.addEventListener("touchstart",start,false);  //移动端touch事件手指按下
    outer.addEventListener("touchmove",move,false); //移动
    outer.addEventListener("touchend",end,false);  //离开
    function start(e){
      x1=e.touches[0].clientY; //传入event对象 获取手指按下坐标点 因为是上下滑动所以获取的是Y轴坐标
      x2=0;  //移动距离为0
    };
    function move(e){
      x2=e.touches[0].clientY;  //手指移动时  获取移动距离
    };
    function end(e){
      if(x2==0){  //手指离开时判断移动距离 若等于零则不滑动
      return false;
      };
      if(x1>x2){  //若离开时按下坐标大于移动之后坐标
        index++;  //内容下标递增
        inner.style.top=-(innercontw*index)+‘px‘;  //向上滑动距离为内容高度*当前下标
        if(index>=6){  //如果下标大于等于内容下标长度
          index=6;  //内容停留在当页
          inner.style.top=-(innercontw*(index-1))+‘px‘;
        }
      }else if(x1<x2){  //如果按下坐标小于移动后坐标
        index--;  //下标递减

        inner.style.top=-(innercontw*index)+‘px‘;  //向下滑动距离为内容高度*当先下标
        if(index<=0){  //如果下标<=0
          index=0;
          inner.style.top=‘0px‘  //留在第一页
        }
      };
    };

       }

以上是关于vue整屏滑动组件的主要内容,如果未能解决你的问题,请参考以下文章

自己开发的 vue 滑动按钮组件 vue-better-slider

一个简单的滑动验证效果 vue组件

vue-concise-slider vue滑动组件

vue 父页面中含子页面滑动,滑动结束,底部组件进行滑动

vue上下滑动翻页组件

vue实现一个鼠标滑动预览视频封面组件