使用vue做项目时,有一种产品需求,是像朋友圈一样展示图片,在小图时,只展示中心的一部分图片

在vue中可以用自定义指令来做

  • 页面代码
<div class="image-item" v-for="(image, index) in data.img" :key="index"><img v-interceptImg :src="data:image.img_min" alt="">
</div>
复制代码
  • 样式代码
.image-item {width: 100%;height: 100%;float: left;display: flex;overflow: hidden;align-items: center;justify-content: center;
}
复制代码
  • 自定义指令代码
export function interceptImg (el, binding) {el.addEventListener('load', () => {let width = el.naturalWidth;let height = el.naturalHeight;// 获取父元素的设定宽度let parentWidth = Number(window.getComputedStyle(el.parentNode).width.replace('px', ''));let parentHeight = Number(window.getComputedStyle(el.parentNode).height.replace('px', ''));// 获取父元素宽高比例let scale = binding.value ? binding.value.scale : parentHeight / parentWidth;// 清除元素style值el.style = '';if (height / width < scale) {el.style.height = '100%';// 获取图片放入后实际的宽度// let imgWidth = Number(window.getComputedStyle(el).width.replace('px', ''));let imgWidth = (width * parentHeight) / height;el.style.marginLeft = `${(parentWidth - imgWidth) / 2}px`;} else if (height / width > scale) {el.style.width = '100%';} else {el.style.width = '100%';el.style.height = '100%';}});
}
复制代码

vue自定义指令截取图片中心显示相关推荐

  1. 自定义指令实现图片懒加载

    Vue自定义指令实现图片懒加载 其实实现懒加载的方式有很多了,现在也有很多插件(比如:vue-lazyload等),element-ui库中也有图片懒加载的方式,所以大家根据自己的喜欢选择就可以了 I ...

  2. Vue自定义指令及实现图片懒加载指令

    一. 速识概念:   在我们使用 Vue 的过程中,遇到了很多方便我们操作的vue内置指令,以 v-xxx 表示.比如有 v-module,v-for,v-if,v-show 等等,每个指令都能实现一 ...

  3. vuejs 指令封装 button 加载效果_这些Vue自定义指令,让你的项目开发爽到爆

    受 AngularJS 的启发,Vue 内置了一些非常有用的指令(比如v-html 和 v-once等),每个指令都有自身的用途.完整的指令列表可以在这里查看. 这还没完,更棒的是可以开发自定义指令. ...

  4. pyqt5 treeview鼠标右键菜单事件_【动手实践】使用 Vue 自定义指令实现右键菜单...

    本文来自于 神奇的程序员 前言 浏览器里右键时会有一个默认的菜单,在我的开源项目中正好有自定义右键菜单的需求,在npm库找了下与之相关的包,发现都是以组件形式实现的,感觉那种做法太过繁琐. 于是,我就 ...

  5. clientsideevents能定义几个click事件_分享8个非常实用的Vue自定义指令

    作者:lzg9527 https://juejin.cn/post/6906028995133833230 在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也 ...

  6. 超实用:Vue 自定义指令合集

    大家好,我是漫步 前面我已经分享过一篇"分享8个非常实用的Vue自定义指令"文章,里面教了大家如何使用自定义指令,以及几个使用的指令,下面这篇文章也是类似内容,希望你会喜欢.记得查 ...

  7. Vue的自定义指令以及Vue自定义指令的应用场景

    前言 一.Vue的自定义指令分为? vue中除了核心功能内置的指令外,也允许注册自定义指令.有的情况下,对普通DOM元素进行底层操作,这时候就会用到自定义指令. 自定义指令分为全局自定义指令和局部的自 ...

  8. vue自定义指令使用

    前言 一.Vue的自定义指令分为? vue中除了核心功能内置的指令外,也允许注册自定义指令.有的情况下,对普通DOM元素进行底层操作,这时候就会用到自定义指令. 自定义指令分为全局自定义指令和局部的自 ...

  9. 15个Vue自定义指令,让你的项目开发爽到爆

    这15个Vue自定义指令,让你的项目开发爽到爆 李中凯老师,8年前端开发,前端负责人,擅长JavaScript/Vue. 受 AngularJS 的启发,Vue 内置了一些非常有用的指令(比如v-ht ...

最新文章

  1. python ---Pandas时间序列:生成指定范围的日期
  2. 【Python】刚刚,Python3.10 正式发布了!终于增加了这个功能...
  3. 本地项目如何连接码云上的项目
  4. Eclipse is running in a JRE, but a JDK is required 解决方法(转)
  5. 2018年泰迪杯数据挖掘比赛c题
  6. 系统分析与设计方法---需求分析与软件设计
  7. mcafee mysql audit_mysql添加mcafee 审计插件
  8. 小米8 青春版root时无法检测到手机
  9. 基于springboot编写的小程序幸运转盘抽奖功能
  10. html 引入 svg矢量图,前端可视化——SVG矢量图技术
  11. 【中医学】11 常见病证-3:虚劳:月经不调:痛经:崩漏:带下:痄腮:疳症:湿疹:肠痈...
  12. 微信与企业微信内嵌浏览器的UserAgent
  13. Kubernetes实战[2]: 服务发现机制与Cluster DNS的安装(无CA认证版)
  14. 国外支付(Paypal,Cybersource)
  15. springboot和springMVC
  16. 《游戏改变世界》读书笔记
  17. 记成功安装win10+elementary双系统
  18. 谁有全民一起mysql_我是Redis,MySQL大哥被我害惨了!
  19. java redis点赞_微信亿级在线点赞系统,用Redis如何实现?
  20. 配置网卡服务—linux

热门文章

  1. 淘宝分布式调度框架TBSchedule
  2. Java/C语言/C++/Python/PHP运算符优先级
  3. Python和OpenCV环境配置
  4. Coursera课程Python for everyone:Quiz: Single-Table SQL
  5. 深度学习(五)caffe环境搭建
  6. 对 C++ 历史的个人观点
  7. GraphQL 学习
  8. jenkins+maven+ansible实现测试环境完全自动发布
  9. 机器学习:数据预处理之独热编码(One-Hot)
  10. Laravel 学习开篇