文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue3怎么实现旋转图片验证

2023-06-30 10:00

关注

这篇“vue3怎么实现旋转图片验证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3怎么实现旋转图片验证”文章吧。

一、前言

一个突发奇想的创作。

二、代码

<template>  <el-dialog      v-model="dialogVisible"      width="15%"      :before-close="handleClose">    <el-image :src="imageUrl" : class="w-full flex justify-center rounded-full overflow-hidden">      <template #error>        <div class="image-slot">          <i class="el-icon-picture-outline text-3xl"></i>        </div>      </template>    </el-image>    <template #footer>      <div class="w-full mx-1 my-1 h-8 bg-gray-300 relative">        <i @mousedown="rangeMove" : class="el-icon-d-arrow-right h-8 w-8 bg-white border absolute top-0 bottom-0 flex justify-center items-center cursor-pointer select-none"></i>      </div>      <div class="w-full flex justify-evenly">        <el-button @click="chongzhi()">重置</el-button>        <el-button type="primary" @click="tijiao()">确定</el-button>      </div>    </template>  </el-dialog></template><script lang="ts">import {computed, defineComponent, ref} from "vue";export default defineComponent({  name:"xuanzhuan",  setup(prop,content) {    // 左侧距离和移动距离    const disX = ref(0)    const leftnum = computed(()=>{      return `left: ${disX.value}px`    })    // 角度和 旋转角度    const jiaodu = ref(0)    const xuanzhuan = computed(()=>{      return `transform:rotate(${jiaodu.value}deg);`    })    const dialogVisible = ref(false)    const imageUrl = ref("https://file.lsjlt.com/upload/202306/28/cwq02egeql5.jpg")    function getimage(){      console.log("向后台获取图片")    }    function init(){      dialogVisible.value = true      getimage()    }    function handleClose(){      jiaodu.value = 0      disX.value = 0      imageUrl.value = ""      dialogVisible.value = false    }    function rangeMove(e:any){      let ele = e.target;      let startX = e.clientX - disX.value;      let eleWidth = ele.offsetWidth;      let parentWidth =  ele.parentElement.offsetWidth;      let MaxX = parentWidth - eleWidth;      document.onmousemove = (e)=>{        let endX = e.clientX;        disX.value = endX - startX;        if(disX.value<=0){          disX.value = 0;        }else if(disX.value>=MaxX){   //减去滑块的宽度,体验效果更好          disX.value = MaxX;        }        // 计算滑动距离与全长的比例        const bili = disX.value / (MaxX-eleWidth)        // 用比例乘以360度,就是旋转角度        jiaodu.value = bili * 360      }      document.onmouseup=()=>{        document.onmousemove = null;        document.onmouseup = null;      }    }    // 逐步减少,看上去好看点    function jianshao(disbuchang:number,jiaobubuchang:number){      jiaodu.value = jiaodu.value - jiaobubuchang      disX.value = disX.value - disbuchang      if(disX.value <=0 ){        jiaodu.value = 0        disX.value = 0      }    }    // 点击重置,使用异步方法,逐步回到原点    function chongzhi(){      const disbuchang = 50      const jiaobubuchang = disbuchang/disX.value * jiaodu.value      const mandian = setInterval(()=>{        if(disX.value == 0){          clearInterval(mandian)        }else{          jianshao(disbuchang,jiaobubuchang)        }      },10)    }    // 点击确定    function tijiao(){      if(disX.value == 0){        return      }      console.log("后端验证成功")      // 成功后,触发父组件方法。      content.emit("get")    }    return {      handleClose,      imageUrl,      dialogVisible,      init,      rangeMove,      leftnum,      xuanzhuan,      chongzhi,      tijiao,    }  },  components:{},})</script><style scoped></style>

css用的是tailwindcss,

三.使用方法

<xuanzhuan ref="myxuanzhuan" @get="chenggong"></xuanzhuan>setup(prop,content) {    const myxuanzhuan:any = ref(null)    function ceshi(){      myxuanzhuan.value.init()    }    function chenggong(){        console.log("成功的回调")    }}

以上就是关于“vue3怎么实现旋转图片验证”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯