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>
相关推荐
JarvanMo10 小时前
Flutter 鸿蒙化迎来"大搬家"
前端
吃口巧乐兹10 小时前
热加载与插件热插拔:Debug 模式 × E-Spi × H-Spi 全解析
javascript
龙佚10 小时前
抖动缓冲与播放控制:平滑播放的艺术
前端·架构
仿生狮子10 小时前
🎼 从文本到交互界面——GenUI 的中庸之道
前端·vue.js·markdown
wuhen_n10 小时前
LangChain 核心:Chain 链式调用实现复杂 AI 任务
前端·langchain·ai编程
往上跑山10 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读
前端
文心快码BaiduComate10 小时前
从个人效能到组织资产:文心快码企业版Agent Hub上线,提升团队AI编程效能
前端·后端·程序员
想不到ID了10 小时前
第八篇: 登录注册功能实现
java·javascript
咖啡星人k10 小时前
从需求到交付:我用MonkeyCode的AI Agent完成了一个React数据看板
前端·人工智能·react.js·monkeycode
sxlishaobin11 小时前
linux 自动清除日志 脚本
linux·服务器·前端