vue 使用vue-puzzle-vcode拼图验证纯前端实现

Vue 纯前端的拼图人机验证、右滑拼图验证
我知道有第 3 方的很好用,比如 GEETEST 的拼图验证,但要引入 SDK 跟后台配合,还有接口交互。
太麻烦了,有时候突然改需求来不及弄,为了应付老板,就弄了个纯前端的随便验一下得了。在这里插入图片描述
安装

npm install vue-puzzle-vcode --save

使用

import Vcode from "vue-puzzle-vcode";

<Vcode
  :show="isShow"
  @onSuccess="onSuccess"
/>

最简单例子

<template>
  <Vcode
    :show="isShow"
    @onSuccess="onSuccess"
    @onClose="onClose"
  />
  <button @click="onSubmit">登录</button>
</template>

<script>
  import Vcode from "vue-puzzle-vcode";
  export default {
    data(){
      return {
        isShow: false, // 验证码模态框是否出现
      }
    },
    components:{
      Vcode
    },
    methods:{
      onSubmit(){
        this.isShow = true;
      },
      // 用户通过了验证
      onSuccess(msg){
        this.isShow = false; // 通过验证后,需要手动隐藏模态框
      },
      // 用户点击遮罩层,应该关闭模态框
      onClose(){
        this.isShow = false;
      }
    }
  }
</script>

参数

字段 类型 默认值 说明
show Boolean false 是否显示验证码弹框
canvasWidth Number 310 主图区域的宽度
canvasHeight Number 160 主图区域的高度
imgs Array null 自定义图片,见下方例子
successText String “验证通过!” 验证成功时的提示文字
failText String “验证失败,请重试” 验证失败时的提示文字
sliderText String “拖动滑块完成拼图” 下方滑动条里的文字

事件

事件名 返回值 说明
onSuccess 偏差值 验证通过时会触发,返回值是用户移动的距离跟目标距离的偏差值px
onFail 偏差值 验证失败时会触发,返回值同上
onClose null 用户点击遮罩层的回调

自定义图片

<template>
  <Vcode :imgs="[Img1, Img2]" />
</template>

<script>
import Img1 from '~/assets/img1.png';
import Img2 from '~/assets/img2.png';

export default {
  data(){
    return {
      Img1,
      Img2
    }
  }
}
</script>

也可以是网络图片完整URL路径,但注意图片跨域问题

说明

当不传递imgs字段或图片加载出错时,会自动生成随机图片
模态框的显示和隐藏完全由父级控制,所以用户通过验证后,需要手动隐藏模态框

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
使用vue-video-player实现实时视频播放,需要先安装vue-video-player插件并引入相关的组件和样式文件。具体步骤如下: 1. 安装vue-video-player插件: ``` npm install vue-video-player --save ``` 2. 在Vue3的入口文件main.js中引入vue-video-player插件和相关的样式文件: ``` import { createApp } from 'vue'; import App from './App.vue'; import VueVideoPlayer from 'vue-video-player'; import 'video.js/dist/video-js.css'; import 'vue-video-player/src/custom-theme.css'; const app = createApp(App); app.use(VueVideoPlayer); app.mount('#app'); ``` 3. 在Vue3的模板中,使用vue-video-player组件来加载视频文件,并设置autoplay和controls属性来自动播放和显示控制条: ``` <template> <div> <video-player ref="videoPlayer" autoplay controls></video-player> </div> </template> ``` 4. 在Vue3的组件中,使用mounted生命周期方法来获取video-player组件的引用,并添加事件监听器来实时监控视频播放: ``` <script> export default { mounted() { const videoPlayer = this.$refs.videoPlayer.$refs.video; videoPlayer.addEventListener('timeupdate', this.handleTimeUpdate); }, methods: { handleTimeUpdate() { const videoPlayer = this.$refs.videoPlayer.$refs.video; const currentTime = videoPlayer.currentTime; // 在这里可以处理视频播放时间的更新 } } } </script> ``` 5. 在handleTimeUpdate方法中,可以获取当前视频播放的时间,并进行处理。例如,可以将当前时间展示在页面上,或者根据时间来触发其他的事件。 需要注意的是,vue-video-player是基于video.js和Vue.js的开源插件,支持多种视频格式和播放器样式。使用vue-video-player可以方便地实现视频播放和控制,同时也提供了一些自定义的配置选项和事件回调函数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值