当前位置: 首页 > news >正文

vue解决页面放大图片模糊的问题

1.页面放大(或者电脑设置了缩放比例,比如125%),图片模糊

不考虑带宽的情况下,直接请求后端最大尺寸的照片。

2.根据用户电脑的放大倍数或者电脑设置中的放大倍数(DPR),自动请求合适的照片

3.实现:

记住公式:图片尺寸 = css尺寸 * DPR,只要公式成立,就一定是清晰的

4.利用img标签的srcset属性实现,值为:图片地址 + DPR

<template><div><img srcset="https://picsum.photos/id/88/150 1x,https://picsum.photos/id/88/300 2x,https://picsum.photos/id/88/600 4x,https://picsum.photos/id/88/900 6x,https://picsum.photos/id/88/1200 8x," alt=""></div>
</template><script>
export default{name: 'autoImg',data(){return {}}
}
</script>
<style lang="less" scoped>
img{width: 150px;height: 150px;
}
</style>

5.万一图片的css样式(宽高)不是写死的,用的是百分比,该如何实现?

记住公式:图片尺寸 = css尺寸 * DPR,现在css尺寸不固定,DPR也不固定

6.使用srcset+sizes属性实现,srcset的值改为:图片地址+图片原始尺寸,sizes采用媒介查询,当照片宽度最大是300px时,就当作是150px,然后乘以DPR,会自动选择合适图片地址。

<template><div><img srcset="https://picsum.photos/id/88/150 150w,https://picsum.photos/id/88/300 300w,https://picsum.photos/id/88/600 600w,https://picsum.photos/id/88/900 900w,https://picsum.photos/id/88/1200 1200w,"sizes="(max-width: 300px) 150px, //当照片宽度最大是300px时,就当作是150px,然后乘以DPR(当为6时),自动选择900w的https://picsum.photos/id/88/900地址(150*6=900)(max-width: 600px) 300px,(max-width: 900px) 450px,(max-width: 1200px) 600px,1200px"alt=""></div>
</template><script>
export default {name: 'autoImg',data() {return {};}
};
</script>
<style lang="less" scoped>
img {width: 50vw;height: 50vh;display: block;margin: 0 auto;
}
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • protobuf repeated C++怎样赋值?
  • CMD,Powershell,Xshell的区别与联系
  • 【Nuxt3】vue3+tailwindcss+vuetify引入自定义字体样式
  • 防火墙综合实验之NAT和智能选路
  • oracle 23ai新的后台进程bgnn介绍
  • AJAX知识点(详解)
  • 【ROS2】中级:tf2-编写监听器(Python)
  • 昇思25天学习打卡营第14天 | ShuffleNet图像分类
  • react获取访问过的路由历史记录
  • 强制升级最新系统,微软全面淘汰Win10和部分11用户
  • 香橙派AIpro部署YOLOv5:探索强悍开发板的高效目标检测能力
  • 一键优雅为Ubuntu20.04服务器挂载新磁盘
  • 产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)
  • Cesium--获取当前相机中心与地面的射线焦点
  • 处理线程安全的列表CopyOnWriteArrayList 和Collections.synchronizedList
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Consul Config 使用Git做版本控制的实现
  • LeetCode18.四数之和 JavaScript
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Python中eval与exec的使用及区别
  • react 代码优化(一) ——事件处理
  • 关于使用markdown的方法(引自CSDN教程)
  • 汉诺塔算法
  • 和 || 运算
  • 缓存与缓冲
  • 面试遇到的一些题
  • 思否第一天
  • 算法-插入排序
  • 走向全栈之MongoDB的使用
  • Spring第一个helloWorld
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 正则表达式-基础知识Review
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #Java第九次作业--输入输出流和文件操作
  • #数据结构 笔记一
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (4)(4.6) Triducer
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (Java入门)学生管理系统
  • (pojstep1.3.1)1017(构造法模拟)
  • (web自动化测试+python)1
  • (windows2012共享文件夹和防火墙设置
  • (二)fiber的基本认识
  • (二)windows配置JDK环境
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转载)深入super,看Python如何解决钻石继承难题
  • *2 echo、printf、mkdir命令的应用
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(五):遍历指定目录下资源文件并更新