返回顶部
首页 > 资讯 > 精选 >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://lsjlt.com/news/326103.html(转载时请注明来源链接)

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

猜你喜欢
  • vue如何封装图片滑块验证组件
    这篇文章主要为大家展示了“vue如何封装图片滑块验证组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装图片滑块验证组件”这篇文章吧。具体内容如下滑块验证组件整体不难,主要在于设置图...
    99+
    2023-06-29
  • vue封装图片滑块验证组件的方法
    本文实例为大家分享了vue封装图片滑块验证组件的具体代码,供大家参考,具体内容如下 滑块验证组件整体不难,主要在于设置图片的样式问题,想要让背景图充满div,就需要滑块图片也跟随等比...
    99+
    2024-04-02
  • PHP如何实现滑块验证图片
    这篇文章主要讲解了“PHP如何实现滑块验证图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP如何实现滑块验证图片”吧!安装composer require kkok...
    99+
    2023-07-04
  • vue自定义开发滑动图片验证组件
    纯前端,通过canvas来自定义开发滑动图片验证,反过来也能完成纯滑动验证。 <template>   <div class="verification" ref=...
    99+
    2024-04-02
  • vue实现图片滑动验证
    本文实例为大家分享了vue实现图片滑动验证的具体代码,供大家参考,具体内容如下 效果图: 1、引用自定义组件 import img0 from '../assets/img.jpg...
    99+
    2024-04-02
  • vue怎么自定义开发滑动图片验证组件
    这篇文章主要介绍了vue怎么自定义开发滑动图片验证组件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么自定义开发滑动图片验证组件文章都会有所收获,下面我们一起来看看吧。纯前端,通过canvas来自定义开...
    99+
    2023-06-29
  • vue如何实现左滑图片验证功能
    这篇“vue如何实现左滑图片验证功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue如何实现左滑图片验证功能”文章吧。一...
    99+
    2023-07-05
  • vue封装组件之上传图片组件
    本文实例为大家分享了vue上传图片组件的封装具体代码,供大家参考,具体内容如下 未上传状态 上传状态 其他状态(查看/删除) 自定义组件文件名称 - 这里叫UploadImg....
    99+
    2024-04-02
  • vue 实现左滑图片验证功能
    目录前言一、安装二、使用前言 众所周知,网页中滑动图片验证一直是各大网站、移动端的主流校验方式,其主要作用是为了区分人和机器以及为了防止机器人程序暴力登录或攻击从而设置的一种安全保护...
    99+
    2023-05-14
    vue 左滑图片验证 vue 图片验证 vue 左滑验证
  • vue实现图片滑动验证功能
    图片滑动验证,是目前比较常见的验证方式,主要目的是防止用户利用机器人自动注册、登录、灌水。 目前vue技术日趋成熟,已经有专门针对图片滑动验证功能的插件了。具体使用方式如下: 1....
    99+
    2024-04-02
  • vue+elementui实现拖住滑块拼图验证
    vue拖住滑块拼图验证,以下是cavas直接写的滑块拼图验证码,直接复制引用即可 ​<template>   <div id="puzzle" ref="puzz...
    99+
    2024-04-02
  • js插件如何实现图片滑动验证码
    这篇文章将为大家详细讲解有关js插件如何实现图片滑动验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jquery.lgymove.js  (function...
    99+
    2024-04-02
  • vue-upload-component如何封装一个图片上传组件
    这篇文章主要介绍了vue-upload-component如何封装一个图片上传组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求分析业务...
    99+
    2024-04-02
  • vue组件如何封装
    封装vue组件的方法:1.新建vue.js项目;2.使用Vue.extend()方法创建组件;3.使用Vue.component()方法注册组件;4.构建组件变量;5.使用组件名称标签调用组件;具体步骤如下:首先,在vue-cli中创建一个...
    99+
    2024-04-02
  • 工具包分享:PHP实现滑块验证图片
    本篇文章主要给大家介绍PHP如何实现滑块验证图片,这里分享一个工具包“poster”,下面看看怎么实现吧,希望对需要的朋友有所帮助!【推荐学习:PHP视频教程】安装composer require kkokk/poster更新compose...
    99+
    2023-05-14
    验证 php
  • vue-cropper插件如何实现图片截取上传组件封装
    小编给大家分享一下vue-cropper插件如何实现图片截取上传组件封装,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!需求场景:后台开发需要上传图片并进行相应比例尺寸图片的截取,本组件开发采用Ant Design Vue组...
    99+
    2023-06-15
  • vue如何封装TabBar组件
    这篇文章主要为大家展示了“vue如何封装TabBar组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何封装TabBar组件”这篇文章吧。实现思路:步骤一:TabBar和TabBarIt...
    99+
    2023-06-25
  • Android 如何实现滑块拼图验证码功能
    本篇内容主要讲解“Android 如何实现滑块拼图验证码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android 如何实现滑块拼图验证码功能”吧!本篇主要从两方面进行介绍:使用依赖库实现...
    99+
    2023-06-14
  • JavaScript如何实现拼图式滑块验证功能
    这篇文章主要介绍“JavaScript如何实现拼图式滑块验证功能”,在日常操作中,相信很多人在JavaScript如何实现拼图式滑块验证功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如...
    99+
    2023-07-02
  • python 识别图片验证码/滑块验证码准确率极高的 ddddocr 库
    前言 验证码的种类有很多,它是常用的一种反爬手段,包括:图片验证码,滑块验证码,等一些常见的验证码场景。 识别验证码的python 库有很多,用起来也并不简单,这里推荐一个简单实用的识别验证码的库 d...
    99+
    2023-09-05
    python 开发语言 numpy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作