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 相关文章推荐
JavaScript QueryString解析类代码
Jan 17 Javascript
jQuery UI 实现email输入提示实例
Aug 15 Javascript
jquery实现图片裁剪思路及实现
Aug 16 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
CSS图片响应式 垂直水平居中
Aug 14 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
详解在express站点中使用ejs模板引擎
Sep 21 Javascript
JS实现520 表白简单代码
May 21 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
解决vue-cli webpack打包后加载资源的路径问题
Sep 25 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
three.js欧拉角和四元数的使用方法
Jul 26 Javascript
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基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
javascript new fun的执行过程
2010/08/05 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
财务管理专业求职信
2014/06/11 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
助学金感谢信
2015/01/20 职场文书
升职自荐信范文
2015/03/27 职场文书
小学数学教学反思范文
2016/02/16 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
送给客户微信问候语!
2019/07/04 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
Java基础-封装和继承
2021/07/02 Java/Android
mysql事务对效率的影响分析总结
2021/10/24 MySQL
django中websocket的具体使用
2022/01/22 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang