Vue3等比例缩放图片组件

 

本文由 ChatMoney团队出品

有些情况我们需要在各种刁钻的情况下都要保持图片比例不变,比如用户缩放窗口等改变布局的情况。实现原理就是通过容器的宽度和内边距在保持你想要的比例。

以下是基础功能的组件示例:

<template>
    <div style="position: relative" :style="ratioStr">
        <div style="position: absolute; inset: 0px; user-select: none">
            <img
                v-if="type === 'image'"
                :src="src"
                :alt="alt || src"
                style="object-fit: cover; width: 100%; height: 100%" />
            <video
                v-else
                :src="src"
                controls
                style="object-fit: contain; width: 100%; height: 100%" />
        </div>
    </div>
</template>

<script lang="ts" setup>
const props = defineProps({
    ratio: {
        type: Array as unknown as () => [number, number],
        default: () => [1, 1],
    },
    alt: {
        type: String,
        default: "",
    },
    type: {
        type: String as () => "image" | "video",
        default: "image",
    },
    src: {
        type: String,
        default: "",
    },
});

const ratioStr = computed(() => {
    const [width, paddingBottom] = props.ratio;
    return `width: 100%;padding-bottom: ${(paddingBottom / width) * 100}%;`;
});
</script>

<style lang="scss" scoped></style>    

Vue3等比例缩放图片组件

关于我们

本文由ChatMoney团队出品,ChatMoney专注于AI应用落地与变现,我们提供全套、持续更新的AI源码系统与可执行的变现方案,致力于帮助更多人利用AI来变现,欢迎进入ChatMoney获取更多AI变现方案!

ChatMoney的头像ChatMoney
上一篇 2024年 6月 6日 下午2:15
下一篇 2024年 6月 11日 上午11:17

相关推荐

  • GPT 模型原理介绍以及应用

    本文由 ChatMoney团队出品 引言 随着人工智能技术的飞速发展,自然语言处理(NLP)领域也取得了显著的进步。其中,GPT(Generative Pre-trained Transformer)模型作为OpenAI的杰出成果,以其卓越的文本生成能力和广泛的应用前景,吸引了全球范围内的关注。本文将深入解析GPT模型的原理,帮助读者更好地理解这一技术的核心…

    2024年 6月 14日
    102
  • GPT-4o:人工智能的新突破

    本文由 ChatMoney团队出品 一、引言 GPT-4o 是 OpenAI 发布的最新人工智能模型,它在 GPT-4 的基础上进行了升级,具备更强大的语言理解和生成能力。本文将详细介绍 GPT-4o 的发布内容、技术实现难度以及未来发展方向,特别是在人情感方向的探索。 二、GPT-4o 的发布内容 多模态交互:GPT-4o 能够同时处理文本、图像和音频输入…

    2024年 6月 17日
    90
  • 大语言模型中上下文窗口理解和实现原理

    本文由 ChatMoney团队出品 上下文窗口含义及其作用 上下文窗口就像是语言模型在阅读和写作时使用的一个“记忆窗口”。想象一下你在读一本书的时候,为了理解某个句子,你可能需要回顾前面的一两句话来抓住它们之间的联系。同样,语言模型在预测或生成文本时,也需要查看前面的一定数量的词元或文本片段,这个范围就是上下文窗口。用大白话说,就是在大模型对话中,将你要提前…

    2024年 6月 18日
    118
  • PHP的命名空间

    本文由 ChatMoney团队出品 PHP 命名空间:模块化和避免命名冲突 在 PHP 项目中,命名空间用于对代码进行模块化和避免命名冲突,尤其在大型项目或使用第三方库时尤为重要。本文将介绍如何使用 PHP 命名空间来组织你的代码。 什么是命名空间 命名空间是通过 namespace 关键字定义的。它们提供了一种方法来封装一组相关的类、接口、函数和常量,从而…

    2024年 7月 31日
    99
  • 面向对象设计基本原则

    本文由 ChatMoney团队出品 引言 在软件开发过程中,随着系统复杂度的增加和业务变更,程序员面临诸多挑战,如耦合性、内聚性、可维护性、可扩展性和可重用性。设计模式能有效地解决这些问题。设计模式蕴含了面向对象的精髓,掌握面向对象设计和分析是掌握设计模式的基础。它能帮助我们优化代码结构,提高代码的可维护性、可扩展性和可读性。 设计模式遵循一定的原则,这些原…

    2024年 8月 5日
    96

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信