学习Vue3系列-开发滑动图片组件

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

前言

最近有个项目是需要用到,滑动图片组件来进行用户登录验证,本着拿来精神,上去github找到了一款比较适合项目开发的插件。

  1. vue-slider-vertify

但是本着学习精神,所以决定深入研究源码,模仿一下优秀的代码思路,提高一下自己的水平

3440b7a216a7b2f8518149e9452a3799.jpg

 

技术选型

  1. Vue3
  2. Canvas

确定组件基础参数

在写组件的过程,其实我们都是要思考,如何能够让业务方使用起来最为方便,我们就先假定以下使用方式

typescript复制代码<vertify :height="80" :width="300" />
<script setup lang="ts">
import vertify from "@/components/Vertify/index.vue"
<script>

在components/Vertify新建index.vue,该组件编写还是使用传统的SFC的形式

确定HTML布局

image.png

 

如何确保canvas能绘制图片

用canvas绘制图片的时候,需要确保图片加载完成后,在进行绘制,否则会出现图片加载不出来的情况。 为了解决这个问题,我们可以使用 JavaScript 来确保图片加载完成后再进行绘制。一种常用的方法是使用图像的 onload 事件,在图像加载完成时触发相应的回调函数,进行绘制操作。

js复制代码<script setup lang="ts">
import { ref, onMounted } from "vue"
export interface IProps {
  width?: number
  height?: number
}
const props = withDefaults(defineProps<IProps>(), {
  width: 320,
  height: 160
})
//目标图片
const canvasRef = ref<HTMLCanvasElement | null>(null)
// 缺失的图片
const blockRef = ref<HTMLCanvasElement | null>(null)

const initImg = () => {
  const img = createImg(() => {
    draw(img)
  })
}
function getRandomNumberByRange(start: number, end: number) {
  return Math.round(Math.random() * (end - start) + start)
}
const getRandomImgSrc = () => {
  return `https://picsum.photos/id/${getRandomNumberByRange(0, 1084)}/${props.width}/${props.height}`
}
const createImg = (onload: VoidFunction) => {
  const img = new Image()
  img.crossOrigin = "Anonymous"
  img.onload = onload
  img.onerror = () => {
    ;(img as any).setSrc(getRandomImgSrc()) // 图片加载失败的时候重新加载其他图片
  
从0-1开发一个Vue3前端系统页面-6.滑动验证码 本节实现登录页面的滑动验证码功能。 阅读详情

相关推荐

电机控制的智慧之眼:全面解析FOC状态观测器

摘要:本文深入探讨磁场定向控制(FOC)中的状态观测器技术,重点分析其在无传感器电机控制中的关键作用。文章详细介绍了滑模观测器(SMO)、扩展卡尔曼滤波(EKF)、龙贝格观测器和高频注入法等主流观测器的工作原理、技术特点及适用场景,其中SMO因结构简单、鲁棒性强成为当前主流方案。同时阐述了观测器与锁相环(PLL)结合的工程实践方案,并针对不同应用场景提供了观测器选型建议。文章还探讨了启动问题处理、参数敏感性等工程挑战的解决方案,以及混合观测器、AI应用等未来发展趋势。这些观测器技术使电机系统在无机械传感器情

汽车软件开发 222

vueslider一个轻量的vue滑动组件

vue-slider,一个简单的滑动组件,配置简单,支持自适应/全屏 按钮 分页,同时兼容移动端和PC端

手把手教你学simulink(12.10)--设计和仿真一个用于控制飞机纵向运动(高度和速度)的多变量控制系统

飞机的纵向运动控制是航空工程中的一个重要问题,涉及飞机的高度和速度的精确控制。多变量控制系统可以同时控制多个飞行参数,确保飞机在最佳条件下运行。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试多变量控制系统。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机纵向运动(高度和速度)的多变量控制系统。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为多变量控制系统的设计提供了有价值的参考。

MHD0815的博客 572

vue实现滑块slider(赋源码)

因为项目用到滑块,只要一处使用到看了第三方库觉得没必要引入导致项目太臃肿: 先上代码: &amp;lt;template&amp;gt; &amp;lt;div class=&quot;slider&quot; ref=&quot;mySlider&quot;&amp;gt; &amp;lt;div class=&quot;left-btn&quot; :class=&quot;{

菜得抠拇指 1万+

vue3中使用 vue3-slide-verify 滑块验证登录

vue3中使用 vue3-slide-verify 滑块验证登录

m0_55969466的博客 1万+

vue3组件Slider

slider组件已成为前端开发中广泛使用的UI组件之一。Slider组件可以让用户在一个可选范围内选择一个值,如音量、进度条等。Slider组件的设计和功能可以有很多种变化,但通常包含一个滑块和一个轨道。用户可以通过拖动滑块来选择一个值,滑块的位置在轨道上表示该值。在前端开发中,Slider组件可以使用HTML、CSS和JavaScript实现。

秋来九月八 7036

两张图片滑动对比效果实现(VUE3

两张图片通过滑块滑动对比,适用于vue3,已封装成组件

lsjweiyi的博客 3228

Vue插件之滑动验证,基于canvas,无其他依赖,兼容IE

目录预览安装使用方法参数说明props传参(均为可选)自定义回调函数注意事项 预览 目前仅前端实现 github文档地址: https://github.com/monoplasty/vue-monoplasty-slide-verify 安装 npm install --save vue-monoplasty-slide-verify 使用方法 // main.js import Vue f......

monoplasty的博客 3万+

利用vueJs实现图片轮播

最近新学习vuejs,尝试着用vuejs写了一个简单的图片轮播,便做个简单的记录 以下只贴出carousel.vue代码,其他的省略 左移 右移 const

南宫凌萱的博客 1万+

Vue 3 中实现流畅的 Swiper 滑动效果

本文介绍了如何在 Vue 3 项目中集成 Swiper,涵盖了从安装、基本用法到丰富的配置选项。通过简单的示例,读者将学习如何创建响应式的图片轮播,利用 Swiper 的循环、自动播放和自定义分页功能,提升用户体验。无论是简单的幻灯片还是复杂的滑块效果,Swiper 都能轻松实现,帮助开发者快速构建出美观的滑动组件

一点一木 6140

Vue中有哪些图片编辑和预览的组件

Vue中有哪些图片编辑和预览的组件? 在现代 Web 应用中,图片编辑和预览是常见需求之一。Vue 作为一个流行的前端框架,生态系统中也有许多优秀的图片编辑和预览组件,它们能帮助开发者快速实现这些功能。本文将从以下几个方面展开讨论: 图片编辑和预览的常见需求 Vue 社区中的流行组件推荐 组件对比分析 示例代码与应用场景

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:CSDNWF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 2463

Vue.js组件开发-实现全屏平滑移动、自适应图片全屏滑动切换

使用Vue实现全屏平滑移动、自适应图片全屏滑动切换的功能。使用Vue 3Vue Router,并结合一些CSS样式来完成这个效果。

LCG元的博客 895

前端图形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)

前言hello, 大家好, 我是徐小夕, 今天又到了我们的博学时间。本文是 100+前端几何学应用案例 专栏的第五篇文章, 之前和大家分享了如何从零实现几何画板以及几何画板的撤销 / 重做 / 图层管理等功能:几何学在前端边界计算中的应用和原理分析前端图形学实战: 从零开发几何画板(vue3 + vite版)前端图形学实战: 100行代码实现几何画板的撤销重做等功能(vue3 + vite版)前端...

趣谈前端 1853

Vue.js组件开发-实现全屏背景图片滑动切换特效

使用 Vue 实现全屏背景图片滑动切换特效的详细步骤、代码、注释和使用说明。

LCG元的博客 1105

Vue中如何实现轮播图、滑块选择器

},},})},<p>当前值:{{ value }}</p>

Java徐师兄的博客 3247

VUE SlideVerify滑块验证登录---内网

vue 登录验证---SlideVerify滑块验证

weixin_43407997的博客 4326

基于vue封装移动触摸滑动组件——简易的swiper

移动端的滑动组件

huihui_999的博客 2695

Vue3滑动输入条(Slider

数字滑动输入条组件,支持:单滑块;双滑块;禁用;自定义数值范围;自定义步长;自定义刻度标记;垂直模式;格式化 tooltip;隐藏 tooltip;始终显示 tooltip;自定义样式;鼠标拖动滑块输入;鼠标点击输入;键盘上/下/左/右按键输入;总之,功能丰富,简单易用😁😁

Vue Amazing UI(Vue3 + TypeScript + Vite)组件库唯一开发维护者 8525

react前端库s

转载:给你 2021 最酷网页设计指南! react: webui库:meterialui使用 - MUI antdesign ​​​​​​​后台管理库:material-dashboardhttps://github.com/creativetimofficial/material-dashboard ant-design-pro文档总览 - Ant Design Pro 新拟态/软ui/灯光浮雕/真实立体: Neumorphis...

weixin_46078854的博客 490

vue实现滑动验证

要在 Vue 中实现滑动验证,你可以使用第三方库,例如。这样,你就在 Vue 项目中实现了滑动验证功能。最后,你可以在 Vue 实例中定义。

z_24kchun的博客 1521

基于YOLOv8的交通信号灯通行规则识别系统源码与实现方案

本毕业设计项目开发了一种基于YOLOv8架构的交叉路口交通信号灯识别系统,包含完整的算法实现与技术文档。该项目在导师指导下完成并通过学术评审,获得98分的优异成绩。系统核心采用经过优化的目标检测模型,能够准确识别交通信号灯的运行状态及对应通行规则。项目资源包含完整可执行的源代码工程,所有程序均通过本地编译环境测试,并经过多轮严格调试确保运行稳定性。代码结构遵循标准开发规范,配有详细注释说明。技术文档系统阐述了算法原理、模型架构设计思路、训练数据集构建方法及性能评估指标。该项目主要面向计算机相关专业的毕业设计实践需求,同时适用于需要进行深度学习项目实战的开发者。项目难度设定为中等水平,所有技术内容均经过教学助理审核,确保符合学术规范与实践要求。资源包中的实验数据、参数配置和模型文件均经过验证,可直接用于学习研究或二次开发。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

上一篇: 【d3.js入门】d3-drag介绍和实战
下一篇: 别再重复造轮子了,又一个前端面试神器!
Cipher_Y
博客等级 码龄3年 91粉丝 · 98原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值