vue实现图片按比例缩放问题操作


Posted in Javascript onAugust 11, 2020

如下所示:

getImg(src){
 var img_url =src
 var img = new Image()
 img.src=img_url
 this.pictureHeight.height = Math.ceil(img.height/img.width * 460)+'px'
},
//首先通过这个方法算出图片的高度/宽度比,460是我设置的宽度,计算得出需要的高度,然后修改容器的高
//度,图片通过height:100%;width:100%撑开,这样图片就不会失真了

vue里面还有一个问题,如果容器只是div的话,修改容器高度,非常简单,如果容器是一个element的插件的话,一般容器的样式都可以通过:style="styleModel"来绑定一个data中的属性styleModel:{height:100px;}这样的方式来修改,

当然如果遇到一些比较复杂的样式调整,也可以通过$refs来修改样式,,但是这样又会出现一个问题,就是$refs定位到的ref属性必须要组件完全加载完成后才能显示出来,所以一般会用this.$nextTick(function(){})的包装起来。

这个方法包装起来后的好处是,会在DOM更新完成后执行这里面的方法,这样就不用担心$refs获取不到的问题了。

this.$nextTick(function(){
  // this.$refs.test.$el.childNodes[0].style.height=this.pictureHeight.height
   document.getElementsByClassName('el-carousel__container')[0].style.height=this.pictureHeight.height
  })
 
//现在就是通过这两种比较通用的js方式来操作属性了

补充知识:vue实现图片放大的方法

一、v-viewer插件

首先,用命令行安装v-viewer插件:

npm install v-viewer --save

然后,在main.js中注册v-viewer插件,代码如下:

// 实现图片点击放大
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer);
Viewer.setDefaults({
 Options: { "inline": true, "button": true, "navbar": true, "title": true, "toolbar": true, "tooltip": true, "movable": true, "zoomable": true, "rotatable": true, "scalable": true, "transition": true, "fullscreen": true, "keyboard": true, "url": "data-source" }
});

注册完成后,就可以在组件中使用v-viewer插件了:

<template>
  <!-- imgArr是图片地址的数组,例: ['1.png','2.png'] -->
 <viewer :images="imgArr">
 <img v-for="src in imgArr" :src="src" :key="src" width="200">
 </viewer>
</template>

二、vue-directive-image-previewer插件

用命令行安装vue-directive-image-previewer插件:

npm install vue-directive-image-previewer -D

在main.js中注册:

import VueDirectiveImagePreviewer from 'vue-directive-image-previewer'
import 'vue-directive-image-previewer/dist/assets/style.css'
Vue.use(VueDirectiveImagePreviewer)

在组件中使用vue-directive-image-previewer插件:

<template>
 <div>
  <img v-image-preview src="123.png"/>
 </div>
</template>

以上这篇vue实现图片按比例缩放问题操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 创建Dom元素
May 07 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
实现只能输入数字的input不用replace方法
Sep 12 Javascript
JS数组的遍历方式for循环与for...in
Jul 31 Javascript
Javascript验证方法大全
Sep 21 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
深入理解Angular.JS中的Scope继承
Jun 04 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
Dec 05 Javascript
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
JavaScript中while循环的基础使用教程
Aug 11 #Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 #Javascript
js实现列表按字母排序
Aug 11 #Javascript
Vue使用轮询定时发送请求代码
Aug 10 #Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 #Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 10 #Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
Aug 10 #Javascript
You might like
PHP url 加密解密函数代码
2011/08/26 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
django创建超级用户过程解析
2019/09/18 Python
python求质数列表的例子
2019/11/24 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
失业者真诚求职信范文
2013/12/25 职场文书
微观物理专业自荐信
2014/01/26 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
工地食品安全责任书
2015/05/09 职场文书
2019财务转正述职报告
2019/06/27 职场文书
python xlwt模块的使用解析
2021/04/13 Python
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android