vue怎么实现图片缩放
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇"vue怎么实现图片缩放"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"vue怎么
千家信息网最后更新 2025年02月02日vue怎么实现图片缩放
这篇"vue怎么实现图片缩放"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"vue怎么实现图片缩放"文章吧。
实现效果如下
这几天做了个没做过的组件,以此记录下,需要的效果是在一个dom内,缩放拖拽图片。
封装的子组件imgbox.Vue。父组件中使用,需要在父组件中准备一个盒子用来装图片,在这个盒子中可以缩放拽拽图片。
父组件如下
父组件html部分
父组件的css部分
.box1{ width: 300px; height: 300px; border: 1px solid #000; /deep/ .dragImg{//深度css,由于vue中的style标签的scoped属性不能直接给子组件样式,需要使用deep在父组件中给子组件中的dom给样式 width: 420px;//子组件中的图片大小 height: 280px; } /deep/ .btnbox{//深度css,由于vue中的style标签的scoped属性不能直接给子组件样式,需要使用deep在父组件中给子组件中的dom给样式 width: 70px;//子组件中按钮盒子的大小 height: 20px; top: 20px;//子组件盒子的位置 left: 20px; .operChange{//按钮的大小 width: 20px; height: 20px; } } }
父组件应用子组件
import imgbox from './imgbox' //拖拽,放大缩小图片 子组件components:{ imgbox },
配置数据
data1:{ name:"data1",//标识数据 imgsrc:require('@/assets/timg.jpg'),//图片路径 imgname:"img01",//图片对应的名字 用该属性和下面的图片数组属性对照,用于子组件获取索引,给默认高亮 scale:1,//默认缩放1 }
方法
enlargeImg:function(val){//放大图片 this[val.name].scale = this[val.name].scale + 0.1 },narrowImg:function(val){//缩小图片 if(this[val.name].scale >= 0.1){ this[val.name].scale = this[val.name].scale - 0.1 } }
子组件imgbox.vue如下
子组件html部分
子组件接受父组件传递参数,自定义指令
export default { components:{}, props:['config'], data(){ return { imgsrc:"",//图片的路径 } }, directives:{//注册指令 drag:function(el){ let dragBox = el; //获取当前元素 dragBox.onmousedown = e => { e.preventDefault(); //算出鼠标相对元素的位置 let disX = e.clientX - dragBox.offsetLeft; let disY = e.clientY - dragBox.offsetTop; _document.onmousemove = e => { //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置 e.preventDefault(); let left = e.clientX - disX; let top = e.clientY - disY; //移动当前元素 dragBox.style.left = left + "px"; dragBox.style.top = top + "px"; }; _document.onmouseup = e => { e.preventDefault(); //鼠标弹起来的时候不再移动 _document.onmousemove = null; //预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动) _document.onmouseup = null; }; } } }, watch:{ config:function(val){ this.imgsrc = val.imgsrc } }, computed:{ scaleFun:function(){ return `transform:scale(${this.config.scale})` } }, created(){}, methods:{ clickEnlarge(){//点击放大 let data = this.config this.$emit('enlarge',data) } ,clickNarrow(){//点击缩小 let data = this.config this.$emit('narrow',data) } },}
子组件css
.myDiv{ width: 100%; height: 100%; position: relative; overflow: hidden; img{ width: 100%; height: 100%; position: relative; } .btnbox{ display: flex; position: absolute; top: 20px; left: 20px; width: 70px; height: 20px; justify-content: space-around; z-index: 99; img{ width: 20px; height: 20px; opacity: 0.7; cursor: pointer; display: inline-block; } }}
以上就是关于"vue怎么实现图片缩放"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
组件
图片
鼠标
位置
元素
内容
属性
样式
盒子
大小
部分
移动
指令
按钮
效果
数据
文章
时候
标签
深度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全前十名
襄阳网络安全等级测评
戴尔监控平台服务器
信息系统与数据库技术 英语
发展网络安全技术图片
网络技术社团简介
数据库程序设计猴子吃桃
摄像机登录服务器超时
服务器光纤模块怎么选
光明区数据网络技术开发服务标准
网络安全培训观后感
win8服务器版
软件开发 招标 并发要求
网络安全竞赛web求
工程网络技术文件
就业的网络技术有哪些
曙光服务器更改管理口密码
创作网络安全密码的方法
校园网络安全设施
内外网服务器开放安全策略
校园网络安全自查工作报告
方舟服务器宝箱品质设置
盐城南京服务器出售
wordnet数据库
太原鲲鹏系列服务器
顺丰科技互联网公司么
网络安全管理约谈
网络安全等级测评师工资
cfx求解放到服务器计算
西安国图网络技术有限公司