代码拉取完成,页面将自动刷新
同步操作将从 monoplasty/vue3-slide-verify 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
A Vue3 plugin to slide verify Demo
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
Using build tools:
npm install --save vue3-slide-verify
Param | Type | Describe | Version |
---|---|---|---|
l | Number | block length | |
r | Number | block circle radius | |
w | Number | canvas width | |
h | Number | canvas height | |
sliderText | String | Slide filled right | |
imgs | Array | picture array 背景图数组,默认值 [] | |
accuracy | Number | 滑动验证的误差范围,默认值 5 | |
show | Boolean | 是否显示刷新按钮,默认值 true | |
interval | Number | 节流函数的时间间隔,默认值 50 | 1.1.2 |
Event | Type | Describe | Version |
---|---|---|---|
success | Function | success callback | 返回时间参数,单位为毫秒 |
fail | Function | fail callback | |
refresh | Function | 点击刷新按钮后的回调函数 | |
again | Function | 检测到非人为操作滑动时触发的回调函数 |
<slide-verify ref="block" ></slide-verify>
setup() {
const block = ref(null);
// 元素挂载之后才能访问ref
onMounted(() => {
block.value.refresh();
})
return {
block,
}
}
accuracy
精度设置判断滑块与凹槽位置的误差范围值,默认取值范围为 [1, 10]。若取值不为 -1,则会开启检测非人为操作。人为操作也有可能会触发哦!
判断依据是:滑块的一系列移动坐标的平均值和方差是否相等。若相等则人为是非人为操作。
若
accuracy
为 -1,则表示关闭检测非人为操作,默认开启。开启之后,若检测到为非人为操作,则会触发again
回调函数
imgs
设置:
imgs
不传或者传空数组时,图片库默认使用第三方api提供的图片路径。可能加载缓慢;imgs
传本地路径时,确保图片路径是否正确。建设传oss上的图片地址。APP.vue
上的写法。或在线查看demo地址参考如下写法
<template>
<div>
<slide-verify
ref="block"
:slider-text="text"
:accuracy="accuracy"
@again="onAgain"
@success="onSuccess"
@fail="onFail"
@refresh="onRefresh"
></slide-verify>
<button class="btn" @click="handleClick">在父组件可以点我刷新哦</button>
<div>{{ msg }}</div>
</div>
</template>
<script lang="ts">
import { defineComponent, ref } from "vue";
// 局部注册组件,需要单独引用组件样式
// 只提供局部引用的方式,不再采用插件形式,方便按需加载,减少主包大小
import SlideVerify, { type SlideVerifyInstance } from 'vue3-slide-verify';
import "vue3-slide-verify/dist/style.css";
export default defineComponent({
components: { SlideVerify },
setup() {
const msg = ref("");
const block = ref<SlideVerifyInstance>();
const onAgain = () => {
msg.value = "检测到非人为操作的哦! try again";
// 刷新
block.value?.refresh();
};
const onSuccess = (times: number) => {
msg.value = `login success, 耗时${(times / 1000).toFixed(1)}s`;
};
const onFail = () => {
msg.value = "验证不通过";
};
const onRefresh = () => {
msg.value = "点击了刷新小图标";
};
const handleClick = () => {
// 刷新
block.value?.refresh();
msg.value = "";
};
return {
block,
msg,
text: "向右滑动->",
accuracy: 1,
onAgain,
onSuccess,
onFail,
onRefresh,
handleClick,
};
},
});
</script>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。