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>
相关推荐
梦曦i3 分钟前
Vue-Router 2.4.0 新增可控重定向功能
前端·uni-app
deli00700723 分钟前
Markdown 实时预览器:左边写右边看,排版效率翻倍
前端·ai编程
郑州光合科技余经理28 分钟前
海外版外卖系统架构:订单怎么流转、权限怎么分
java·开发语言·前端·系统架构·uni-app·php·ai编程
lemon_yyds35 分钟前
H5 页面嵌入 APP 的 web-view 时-调用原生能力(uniapp)
vue.js
pengyu42 分钟前
【Kotlin 协程修仙录 · 炼虚境 · 初阶】 | 虚空造物:Channel 基础与协程间通信的管道艺术
android·前端·kotlin
提线木偶44 分钟前
CORS 到底谁说了算?一份跨域配置的避坑指南
前端·后端
九九落1 小时前
北京时间校准怎么做?电脑和手机时间不准的排查方法
javascript
网安蟹佬霸2 小时前
区块链与智能合约安全实战:从Solidity审计到DeFi漏洞深度剖析
运维·前端·网络·安全·自动化·区块链·智能合约
念何架构之路2 小时前
Gin响应渲染
前端·javascript·gin
invicinble2 小时前
设计网站的底层思路(深刻版本)
前端