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 EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
Jun 05 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
vue中组件的过渡动画及实现代码
Nov 21 Javascript
JS简单判断是否在微信浏览器打开的方法示例
Jan 08 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
vue-next/runtime-core 源码阅读指南详解
Oct 25 Javascript
深入了解Vue.js 混入(mixins)
Jul 23 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 进度条实现代码
2009/03/10 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
vue实现购物车小案例
2019/09/27 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python numpy存取文件的方式
2020/04/01 Python
python连接mongodb集群方法详解
2020/02/13 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
平面设计自荐信
2013/10/07 职场文书
委托书范本
2014/09/13 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
小学语文教学随笔
2015/08/14 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL