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对select标签的控制(option选项/select)
Jan 31 Javascript
js身份证判断方法支持15位和18位
Mar 18 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
Mar 02 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
jQuery ajax分页插件实例代码
Jan 27 Javascript
AngularJS报错$apply already in progress的解决方法分析
Jan 30 Javascript
在node中如何使用 ES6
Apr 22 Javascript
微信小程序学习之数据处理详解
Jul 05 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 Javascript
Jquery动态列功能完整实例
Aug 30 jQuery
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 Javascript
JS异步宏队列微队列原理详解
Sep 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
优化使用mysql存储session的php代码
2008/01/10 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
javascript中的隐式调用
2018/02/10 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
Cpy和Python的效率对比
2015/03/20 Python
简单实现python收发邮件功能
2018/01/05 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
如何解决python多种版本冲突问题
2020/10/13 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
python如何构建mock接口服务
2021/01/28 Python
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
文明餐桌活动方案
2014/02/11 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
可可西里观后感
2015/06/08 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫