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.autocomplete 支持中文输入(firefox)修正方法
Mar 10 Javascript
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
通过url查找a元素并点击
Apr 09 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 Javascript
关于使用axios的一些心得技巧分享
Jul 02 Javascript
js学习心得_一个简单的动画库封装tween.js
Jul 14 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
uni-app使用微信小程序云函数的步骤示例
May 22 Javascript
一行JavaScript代码如何实现瀑布流布局
Dec 11 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数组总结篇(一)
2008/09/30 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
javascript onmouseout 解决办法
2010/07/17 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
2019/04/26 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
常见的python正则用法实例讲解
2016/06/21 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
会计专业的自荐信
2013/12/12 职场文书
项目施工员岗位职责
2014/03/09 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
会员活动策划方案
2014/08/19 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
浅谈redis整数集为什么不能降级
2021/07/25 Redis