手指滑动轮播图(针对没有滑动效果的ui框架实现手指滑动)

           data(){
            return{
                isautoplay:false
            }
          },                    

          mounted(){
            // 有if判断的dom元素添加一个延时器方便获取dom元素
            setTimeout(()=>{
            this.slideBanner()
            },1000)
          },


       slideBanner()  {
          //选中item的盒子  goods-detail-carousel
          
          var box = document.querySelector('.goods-detail-carousel');
         
          // console.log(box);
          //手指起点X坐标
          var startPoint = 0;
          //手指滑动重点X坐标
          var stopPoint = 0;
          //重置坐标
          var resetPoint =  function(){
              startPoint = 0;
              stopPoint = 0;
          }
          //手指按下
          let _this = this
          box.addEventListener("touchstart",function(e){
              //手指点击位置的X坐标
              startPoint = e.changedTouches[0].pageX;
              _this.isautoplay=false
          },true);
          //手指滑动
          box.addEventListener("touchmove",function(e){
              //手指滑动后终点位置X的坐标
              stopPoint = e.changedTouches[0].pageX;
          });
          //当手指抬起的时候,判断图片滚动离左右的距离
          box.addEventListener("touchend",function(e){
              // console.log("1:"+startPoint);
              // console.log("2:"+stopPoint);
              if(stopPoint == 0 || startPoint - stopPoint == 0){
                  // console.log('不滑');
                  _this.isautoplay=true
                  resetPoint();
                  return;
              }
              if(startPoint - stopPoint > 0){
                  // console.log('左滑');
                  _this.$nextTick(()=>{
                      _this.$refs.carousel.next();
                      setTimeout(()=>{
                          _this.isautoplay=true
                      },3000)
                  }) 
                  resetPoint();
                  return;
              }
              if(startPoint - stopPoint < 0){
                  // console.log('右滑');
                    _this.$nextTick(()=>{
                      _this.$refs.carousel.prev();
                          setTimeout(()=>{
                          _this.isautoplay=true
                      },3000)
                  }) 
                  resetPoint();
                  return;
              }
          });
      },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白的蓝色生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值