纯前端,滑块验证

工作需要前端做验证,

就在网上找了一款插件 vue-drag-verify

样式蛮好看的,所以就选择了这个插件
在这里插入图片描述

安装依赖:

npm install vue-drag-verify --save

代码部分:

<template>
  <div>
    <el-button></el-button>
    <p>
      
      dksal;
      <i class="el-icon-arrow-right"></i>
    </p>
    <dragVeriyf
       :height="height"
       :width="width" 
			 :text="text" 
			 :success-text="successText" 
			 :background="background" 
			 :progress-bar-bg="progressBarBg" 
			 :completed-bg="completedBg" 
			 :handler-bg="handlerBg" 
			 :handler-icon="handlerIcon" 
			 :text-size="textSize" 
			 :success-icon="successIcon" 
			 :circle="getShape"
       @passcallback='backclick'
    >
    </dragVeriyf>
  </div>
</template>

<script>
import dragVeriyf from 'vue-drag-verify'
export default {
  name: 'HelloWorld',
  components:{
    dragVeriyf
  },
  data () {
    return {
      width:400,
      height:60,
      text:'将滑块滑动到右边',
      successText:'验证成功',
      background:'#CCCCCC',
      progressBarBg:'#FFFF99',
      completedBg:'#63C763',
      handlerBg:'red',
      getShape:true,
      successIcon:'el-icon-check',
      handlerIcon:'el-icon-arrow-right',
      textSize:'20'
      

    }
  },
  methods:{
    backclick(res){
      console.log(res)
    },
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

略微感觉不是很好用,我就自己提了个组件出来

效果图:
在这里插入图片描述

组件地址:
https://gitee.com/mangseng666/slidercangku.git

在这里插入图片描述

就酱~~~

补充: 我主要是做移动端的验证,在使用过程中出现了一些小问题,移动端只有苹果手机可以滑动,安卓浏览器都无法滑动这个问题,在网上搜了一下解决方案,主要是检查,外部包围是否有写overflow:hidden,和 height:100%。这个方法待测试。 2020.07.25.10.08

补充:上面的方法没有效果,安卓端无法滑动的原因是因为浏览器有默认的左右滑动会切换到上下一页,需要在滑动的时候禁止浏览器这一行为。代码在修改

 var xStart, xEnd, yStart, yEnd;

    window.addEventListener("touchstart", function (evt) {
      xStart = evt.touches[0].pageX;
      yStart = evt.touches[0].pageY;
      
    }, {passive:false}),

    window.addEventListener('touchmove', function (evt) {
      // console.log()
      xEnd = evt.touches[0].pageX;
      yEnd = evt.touches[0].pageY;
      
      //左右滑动
      if(Math.abs(xStart - xEnd) > Math.abs(yStart - yEnd)){
          evt.preventDefault();
        }
    }, {passive:false})

然后记得移除监听事件的时候需要这样写哦

beforeDestroy(){
    window.removeEventListener("touchstart", {passive:false})
    window.removeEventListener("touchmove" , {passive:false})
  }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值