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 sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
浅析node.js中close事件
Nov 26 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
Mar 08 Javascript
vue货币过滤器的实现方法
Apr 01 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
Mar 09 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
swiper Scrollbar滚动条组件详解
Sep 08 Javascript
JS实现简单的表格增删
Jan 16 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 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设计模式 Proxy (代理模式)
2011/06/26 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
办公室前台岗位职责
2014/01/04 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
《金子》教学反思
2014/04/13 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers