vue怎么实现图片缩放
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇"vue怎么实现图片缩放"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"vue怎么
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
访问不了服务器网站
电大数据库应用技术考试及答案
网络安全服务器多少钱一台
数据库技术有什么应用
数据库管理软件手机版
c 服务器 客户端ip
创建邮件服务器
虚拟服务器和服务器
服务器托管管理制度
华为2020年推出的服务器
db2jdbc连接数据库
顺义区品质软件开发售后保障
僵尸毁灭工程服务器l
河北品质网络技术咨询零售价
数据库测试爱情
赛尔号服务器
大学数据库应用基础书
数据库主键能不能相同
打印机服务器脱机啥意思
临汾网络技术价目表
iptv网关服务器怎么设置
访问数据库很慢
世界网络安全交流
怎么看数据库装在哪台服务器上
网络安全加固软件招标评分表
大众网网络安全
软件开发 在家
代理服务器不支持密码
卫健局网络安全责任追究制度
画出服务器部件框架图