Vue3滑動到最右驗證功能實現(xiàn)
1、思路
1、在登錄頁面需要啟動向右滑塊驗證
2、效果圖
3、文章地址:滑動驗證碼的實現(xiàn)-vue-simple-verify
2、成分分析
1、由三塊構(gòu)成,分別是底部條、拖動條、拖動移動部分
2、底部條:整體容器,包括背景、邊框和文字(請按住滑塊,拖動到最右邊)
3、拖動條:圖片+邊框+背景色即可
4、完成部分:背景、邊框和文字(驗證完成)
3、事件分析
1、鼠標(biāo)按下事件:記錄鼠標(biāo)位置以及狀態(tài)
2、鼠標(biāo)移動事件:計算滑塊位置
3、鼠標(biāo)離開事件:更新狀態(tài)至初始狀態(tài)
4、鼠標(biāo)抬起事件:更新狀態(tài)至初始狀態(tài)
4、效果圖
5、代碼
1、SlideVerify.vue文件
<template> <div ref="sliderContainer" @mousemove="onMouseMove" @mouseup="onMouseUp" class="slider-verify-container" @mouseleave="onMouseLeave" > <span v-if="blockState === 0">請按住滑塊,拖動到最右邊</span> <div @mousedown="onMouseDown" :style="{ left: leftP }" class="slider-verify-block" /> <div :style="{ width: leftP }" class="slider-verify-complete"> <span v-if="blockState === 2">驗證成功</span> </div> </div> </template> <script setup> import { ref, defineEmits } from "vue"; const emit = defineEmits(["success", "failed"]); const leftP = ref("0"); const blockState = ref(0); const startP = ref(undefined); const sliderContainer = ref(undefined); const onMouseDown = (e) => { if (blockState.value !== 2) { leftP.value = "0"; blockState.value = 1; startP.value = { clientX: e.clientX, }; } else { leftP.value = "0"; blockState.value = 0; } }; const onMouseMove = (e) => { if (blockState.value === 1) { let width = e.clientX - startP.value.clientX; if (width + 56 > 400) { leftP.value = 400 - 56 + "px"; blockState.value = 2; emit("success"); } else { leftP.value = width + "px"; } } }; const onMouseUp = (e) => { if (blockState.value !== 2) { leftP.value = "0"; blockState.value = 0; emit("failed"); } }; const onMouseLeave = (e) => { if (blockState.value !== 2) { leftP.value = "0"; blockState.value = 0; emit("failed"); } }; </script> <style lang="scss" scoped> .slider-verify-container { width: 100%; height: 56px; background-color: transparent; position: relative; border: solid 1px #20cccf; text-align: center; color: #20cccf; line-height: 56px; user-select: none; -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; } .slider-verify-complete { width: 0; height: 56px; position: absolute; background-color: #00e6f14f; left: 0; top: 0; } .slider-verify-block { width: 56px; height: 56px; background-image: url("@/assets/images/login6/arrow.png"); background-color: white; position: absolute; left: 0; top: -1px; border: solid 1px #20cccf; background-size: 50%; background-repeat: no-repeat; background-position: center; } </style>
2、調(diào)用代碼
<slide-verify @success="onVerifySuccess" @failed="onVerifyFailed" />
到此這篇關(guān)于Vue3滑動到最右驗證功能的文章就介紹到這了,更多相關(guān)Vue3滑動到最右驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決
這篇文章主要介紹了安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03vue實現(xiàn)的網(wǎng)易云音樂在線播放和下載功能案例
這篇文章主要介紹了vue實現(xiàn)的網(wǎng)易云音樂在線播放和下載功能,結(jié)合具體實例形式分析了網(wǎng)易云音樂相關(guān)接口調(diào)用與操作技巧,需要的朋友可以參考下2019-02-02Vue3處理大數(shù)據(jù)量渲染和優(yōu)化的方法小結(jié)
在現(xiàn)代Web應(yīng)用中,隨著用戶數(shù)據(jù)和交互的復(fù)雜性增加,如何高效地處理大數(shù)據(jù)量渲染成為了前端開發(fā)的重要環(huán)節(jié),本文將以Vue 3為例,探討如何優(yōu)化大數(shù)據(jù)量渲染,提升應(yīng)用性能,需要的朋友可以參考下2024-07-07vue-router解決相同路徑跳轉(zhuǎn)報錯的問題
這篇文章主要介紹了vue-router解決相同路徑跳轉(zhuǎn)報錯的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04element中el-cascader級聯(lián)選擇器只有最后一級可以多選
本文主要介紹了element中el-cascader級聯(lián)選擇器只有最后一級可以多選,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01