Vue3 简单的滑块验证
时间:2021-08-04
本文章向大家介绍Vue3 简单的滑块验证,主要包括Vue3 简单的滑块验证使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
网上找了找没有VUE3的,就自己写了一个兼容PC和手机端
<template> <div class="sliderverify"> <div @touchstart="touch" @mousedown="touch" :class="statusItem[status]"></div> </div> </template> <script> import { ref, getCurrentInstance } from "vue"; export default { porps: { width: { type: String, default: "100%" } }, emits: ["change"], setup(porps, { emit }) { const { ctx } = getCurrentInstance() console.log(porps) const status = ref(0) const disX = ref(0) const statusItem = ["button", "success"] const touch = (e) => { const clientX = e.clientX || e.changedTouches[0].clientX; const pw = e.target.parentElement.offsetWidth - e.target.offsetWidth e.target.onmousemove = e.target.ontouchmove = (m) => { var x = (m.clientX || m.changedTouches[0].clientX) - clientX disX.value = x < 0 ? 0 : pw <= x ? pw - 2 : x e.target.style.transform = `translateX(${disX.value}px)` e.preventDefault(); } ctx.$root.$el.onmouseup = e.target.ontouchend = () => { ctx.$root.$el.onmouseup = e.target.onmousemove = null status.value = Math.abs(disX.value - pw) < 3 ? 1 : 0 emit("change", status.value) e.target.style.transform = `translateX(${0}px)` } } return { touch, status, statusItem } } } </script> <style scoped> .sliderverify { display: block; height: 30px; background-color: #eee; border: 1px solid #ddd; border-radius: 5px; position: relative; } .sliderverify .button, .sliderverify .success, .sliderverify .fail { position: absolute; display: block; height: 100%; background-color: #fff; width: 40px; border-radius: 5px; } .sliderverify .button::before, .sliderverify .button::after, .sliderverify .success::after { position: absolute; display: block; content: ""; width: 10px; height: 10px; border-left: 2px solid #bbb; border-bottom: 2px solid #bbb; transform: rotate(225deg); margin-left: 15px; margin-top: 8px; } .sliderverify .button::after { margin-left: 8px; margin-top: 8px; } .sliderverify .success::after { width: 14px; height: 8px; transform: rotate( 307deg ); margin: 7px 0 0 11px; } .sliderverify .success { background-color: #67c23a; right: 0; } </style>
原文地址:https://www.cnblogs.com/87duan/p/15099505.html
- 人工智能将取代人类?危机亦或是新的机遇
- 大数据驱动的未来网络:体系架构与应用场景(下)网络架构与场景详解
- 冷静点,NVIDIA 禁止 Geforce 进数据中心想限制的并不是深度学习
- 智能机器人崛起背后的中国力量
- 企业微服务架构转型-实施步骤
- Andrew Ng机器学习课程笔记--week2(多元线性回归&正规公式)
- 科技第六感:黑客控制你的车!不信?其实很简单
- python多版本的pip共存问题解决办法
- C++ 对vector进行排序
- 小程序优化36计
- 神经网络权重初始化问题
- Andrew Ng机器学习课程笔记--week11(图像识别&总结划重点)
- 市民近期到南沙有望体验到无人驾驶技术
- Andrew Ng机器学习课程笔记--week10(优化梯度下降)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python编程 基础练习(三)
- Python 图像数组变换及手绘效果实现
- 爬取TIOBE编程语言热度数据 + Pyecharts绘制时间轮播图
- Python 简单实现贪吃蛇小游戏
- Python数据可视化 词云图 绘制词云的方法总结
- Python 利用OpenCV给照片换底色
- Python爬虫实战 批量下载高清美女图片
- Python matplotlib数据可视化 绘制柱形图、堆叠图、折线图、饼图和环图
- Python Matplotlib数据可视化 绘制箱形图、散点图和直方图
- 【Lighthouse教程】scrapy爬虫初探
- Python爬虫 爬取B站视频弹幕 + 绘制词云
- Python爬虫学习笔记 asyncio+aiohttp 异步爬虫原理和解析
- Python数据分析 利用NetworkX绘制网络图
- Python爬虫练习 爬取网络小说保存到txt
- Python爬取链家成都二手房源信息 asyncio + aiohttp 异步爬虫实战