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 相关文章推荐
写的htc的数据表格
Jan 20 Javascript
分享别人写的一个小型js框架
Aug 13 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
每天一篇javascript学习小结(Boolean对象)
Nov 12 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
js 判断一个数字是不是2的n次方幂的实例
Nov 26 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
layui 优化button按钮和弹出框的方法
Aug 15 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 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编程快速实现数组去重的方法详解
2017/07/22 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python getopt 参数处理小示例
2009/06/09 Python
python实现绘制树枝简单示例
2014/07/24 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
关于Java String的一道面试题
2013/09/29 面试题
慈善捐赠倡议书
2014/08/30 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
协议书范文
2015/01/27 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
南极大冒险观后感
2015/06/05 职场文书
大学运动会通讯稿
2015/07/18 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Golang流模式之grpc的四种数据流
2022/04/13 Golang