广告
返回顶部
首页 > 资讯 > 精选 >vue如何封装图片滑块验证组件
  • 231
分享到

vue如何封装图片滑块验证组件

2023-06-29 18:06:25 231人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“Vue如何封装图片滑块验证组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装图片滑块验证组件”这篇文章吧。具体内容如下滑块验证组件整体不难,主要在于设置图

这篇文章主要为大家展示了“Vue如何封装图片滑块验证组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装图片滑块验证组件”这篇文章吧。

具体内容如下

滑块验证组件整体不难,主要在于设置图片的样式问题,想要让背景图充满div,就需要滑块图片也跟随等比放大,效果与代码如下:

vue如何封装图片滑块验证组件

html

<template>  <section class="slider-section">    <div class="img-box">      <img :src="'data:image/png;base64,' + sliderData.bigImg" class="bg-img" ref="bgImg" />      <img :src="'data:image/png;base64,' + sliderData.smallImg" class="slider-img" ref="sliderImg" />    </div>    <div class="slider-box">      <span class="slider-text">向右滑动滑块填充拼图</span>      <div class="slider-icon" @mousedown="rangeMove">></div>    </div>  </section></template>

js

<script>export default {  props: ['sliderData'], // 父组件传入的滑块数据对象  watch: {    sliderData: { // 监听滑块数据变化,重置滑块位置      handler (newVal, oldVal) {        if (newVal) {          this.init()        }      },      deep: true    }  },  data () {    return {      disX: 0 // 滑块距离背景图左侧的位置    }  },  mounted () {    this.init()  },  methods: {    // 初始化滑块的位置    init () {      this.disX = 0 // 初始化滑块位置      let bigImg = new Image() // 创建背景图片      bigImg.src = "data:image/png;base64," + this.sliderData.bigImg      bigImg.onload = () => {        let originWidth = bigImg.width  // 获取原始背景图片的宽度        let widthRate = this.$refs.bgImg.width / originWidth // 背景图片渲染后的实际宽度/原始图片宽度        let smallImg = new Image() // 创建滑块图片        smallImg.src = "data:image/png;base64," + this.sliderData.smallImg        this.$refs.sliderImg.src = 'data:image/png;base64,' + this.sliderData.smallImg // 设置滑块图片地址        this.$refs.sliderImg.style.width = smallImg.width * widthRate + 'px'  // 设置滑块图片宽度        this.$refs.sliderImg.style.top = this.sliderData.smallY * this.$refs.bgImg.height + 'px'  // 设置滑块距离背景图顶部的距离        this.$refs.sliderImg.style.left = 0  // 设置滑块距离背景图左侧的距离      }    },    // 移动事件触发    rangeMove (e) {      let ele = e.target      let startX = e.clientX      let eleWidth = ele.offsetWidth      let parentWidth = ele.parentElement.offsetWidth      let MaxX = parentWidth - eleWidth      document.onmousemove = (e) => {        let endX = e.clientX        this.disX = endX - startX        this.$refs.sliderImg.style.left = this.disX + 'px'        if (this.disX <= 0) {          this.disX = 0          this.$refs.sliderImg.style.left = 0        }        if (this.disX >= MaxX - eleWidth) {//减去滑块的宽度,体验效果更好          this.disX = MaxX          this.$refs.sliderImg.style.left = (parentWidth - this.$refs.sliderImg.width) + 'px'        }        ele.style.transition = '.1s all'        ele.style.transfORM = 'translateX(' + this.disX + 'px)'        e.preventDefault()      }      document.onmouseup = () => {        this.$emit('submitPic', this.disX / parentWidth) // 停止滑动事件冒泡给父级        setTimeout(() => {          ele.style.transition = '.5s all'; // 初始化滑块位置          ele.style.transform = 'translateX(0)';        }, 200)        document.onmousemove = null        document.onmouseup = null      }    }  }}</script>

CSS

<style scoped lang="less">.slider-section {  margin: 20px 0;  .img-box {    position: relative;    .bg-img {      width: 100%;    }    .slider-img {      position: absolute;      left: 0;      top: 0;    }  }   .slider-box {    margin-top: 20px;    background: #f7f9fa;    color: #666;    border: 1px solid #e4e7eb;    position: relative;    height: 30px;    width: 100%;    &:hover {      box-shadow: 0 0 3px #ccc;    }    .slider-text {      font-size: 14px;      position: absolute;      top: 50%;      left: 50%;      transform: translate(-50%, -50%);    }    .slider-icon {      width: 30px;      height: 30px;      background: #c8923a;      text-align: center;      font-size: 20px;      color: #fff;      box-shadow: 0 0 6px #ccc;    }  }}</style>

注:使用的是mousedown、onmousemove 、onmouseup 事件,仅支持PC端,如果要在移动端使用,需要把这些事件改成touch等;

以上是“vue如何封装图片滑块验证组件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: vue如何封装图片滑块验证组件

本文链接: https://www.lsjlt.com/news/326103.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue如何封装图片滑块验证组件
    这篇文章主要为大家展示了“vue如何封装图片滑块验证组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装图片滑块验证组件”这篇文章吧。具体内容如下滑块验证组件整体不难,主要在于设置图...
    99+
    2023-06-29
  • vue封装图片滑块验证组件的方法
    本文实例为大家分享了vue封装图片滑块验证组件的具体代码,供大家参考,具体内容如下 滑块验证组件整体不难,主要在于设置图片的样式问题,想要让背景图充满div,就需要滑块图片也跟随等比...
    99+
    2022-11-13
  • vue自定义开发滑动图片验证组件
    纯前端,通过canvas来自定义开发滑动图片验证,反过来也能完成纯滑动验证。 <template>   <div class="verification" ref=...
    99+
    2022-11-13
  • PHP如何实现滑块验证图片
    这篇文章主要讲解了“PHP如何实现滑块验证图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP如何实现滑块验证图片”吧!安装composer require kkok...
    99+
    2023-07-04
  • vue怎么自定义开发滑动图片验证组件
    这篇文章主要介绍了vue怎么自定义开发滑动图片验证组件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么自定义开发滑动图片验证组件文章都会有所收获,下面我们一起来看看吧。纯前端,通过canvas来自定义开...
    99+
    2023-06-29
  • vue封装组件之上传图片组件
    本文实例为大家分享了vue上传图片组件的封装具体代码,供大家参考,具体内容如下 未上传状态 上传状态 其他状态(查看/删除) 自定义组件文件名称 - 这里叫UploadImg....
    99+
    2022-11-12
  • vue如何实现左滑图片验证功能
    这篇“vue如何实现左滑图片验证功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何实现左滑图片验证功能”文章吧。一...
    99+
    2023-07-05
  • vue-upload-component如何封装一个图片上传组件
    这篇文章主要介绍了vue-upload-component如何封装一个图片上传组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求分析业务...
    99+
    2022-10-19
  • js插件如何实现图片滑动验证码
    这篇文章将为大家详细讲解有关js插件如何实现图片滑动验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jquery.lgymove.js  (function...
    99+
    2022-10-19
  • vue-cropper插件如何实现图片截取上传组件封装
    小编给大家分享一下vue-cropper插件如何实现图片截取上传组件封装,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!需求场景:后台开发需要上传图片并进行相应比例尺寸图片的截取,本组件开发采用Ant Design Vue组...
    99+
    2023-06-15
  • vue-cropper插件实现图片截取上传组件封装
    基于vue-cropper插件实现图片截取上传组件封装的具体代码,供大家参考,具体内容如下 需求场景: 后台开发需要上传图片并进行相应比例尺寸图片的截取,本组件开发采用Ant Des...
    99+
    2022-11-12
  • vue组件如何封装
    封装vue组件的方法:1.新建vue.js项目;2.使用Vue.extend()方法创建组件;3.使用Vue.component()方法注册组件;4.构建组件变量;5.使用组件名称标签调用组件;具体步骤如下:首先,在vue-cli中创建一个...
    99+
    2022-10-06
  • Vue图片放大镜组件的封装使用详解
    基于Vue的图片放大镜组件封装,供大家参考,具体内容如下 图片放大镜的实现过程是将一个小图放置在一个盒子里,当鼠标在小图盒子里移动时,出现一个移动块(阴影区域/遮罩层),右侧大图片盒...
    99+
    2022-11-12
  • 怎么用Vue组件封装上传图片和视频
    这篇文章主要介绍“怎么用Vue组件封装上传图片和视频”,在日常操作中,相信很多人在怎么用Vue组件封装上传图片和视频问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Vue组件封装上传图片和视频”的疑惑有所...
    99+
    2023-06-20
  • Vue中图片上传组件封装-antd的a-upload二次封装的实例
    目录图片上传组件封装-antd的a-upload二次封装api组件封装使用优化图片上传组件封装-antd的a-upload二次封装 a-upload组件 api const pub...
    99+
    2022-11-13
  • vue如何封装TabBar组件
    这篇文章主要为大家展示了“vue如何封装TabBar组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装TabBar组件”这篇文章吧。实现思路:步骤一:TabBar和TabBarIt...
    99+
    2023-06-25
  • Node.JS如何使用纯JavaScript生成图片或滑块式验证码功能
    这篇文章主要为大家展示了“Node.JS如何使用纯JavaScript生成图片或滑块式验证码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.JS如何...
    99+
    2022-10-19
  • Android 如何实现滑块拼图验证码功能
    本篇内容主要讲解“Android 如何实现滑块拼图验证码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android 如何实现滑块拼图验证码功能”吧!本篇主要从两方面进行介绍:使用依赖库实现...
    99+
    2023-06-14
  • JavaScript如何实现拼图式滑块验证功能
    这篇文章主要介绍“JavaScript如何实现拼图式滑块验证功能”,在日常操作中,相信很多人在JavaScript如何实现拼图式滑块验证功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如...
    99+
    2023-07-02
  • Vue如何实现封装一个切片上传组件
    今天小编给大家分享一下Vue如何实现封装一个切片上传组件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。组件效果单文件切片上传...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作