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
Previous 2024年 6月 6日 下午2:15
Next 2024年 6月 11日 上午11:17

相关推荐

  • PHP数据结构之栈

    本文由 ChatMoney团队出品 栈(Stack)是一种后进先出(Last In First Out, LIFO)的数据结构,它只允许在一端(称为栈顶)进行插入和删除操作。栈的应用非常广泛,例如在编程语言的函数调用中,每次函数调用都会将一个新的帧压入栈中,当函数返回时,该帧会被弹出。此外,栈还常用于解决某些算法问题,如括号匹配、深度优先搜索等。 栈的基本概…

    2024年 7月 8日
    440
  • TypeScript中,如何利用数组生成一个联合类型

    本文由 ChatMoney团队出品 在开发中我们常常会遇到这样一个问题,代码如下: 我们想要传入一个参数到str,而且这个参数必须是arr数组中的某一个元素,这时我们希望的是可以直接得到这个arr的联合类型,接下来一般我们会使用传统的方法去声明类型,如下: 先不说这样的写法很笨,写的时候就已经很ex了,我们希望的是Strs可以根据上面arr的值来自动生成一个…

    2024年 7月 2日
    184
  • 网页文件加载失败如何重试

    本文由 ChatMoney团队出品 在我们开发网站应用时,我们可能会遇到脚本加载失败的情况,导致脚本加载失败的原因有很多,比如用户的网络问题、终端设备问题、用户浏览器版本等诸多因素。 解决方案 在 JavaScript 中,我们可以创建一个监听来监听脚本加载失败的情况,然后针对加载失败的脚本进行重新加载。 重新加载的方案,一般是通过更换域名来解决。我们给每个…

    2024年 7月 16日
    135
  • PHP 7+ PHP-FPM 参数配置注意事项

    本文由 ChatMoney团队出品 在安装 PHP 7+ 并使用 PHP-FPM 作为进程管理器时,确保 PHP-FPM 的参数配置正确至关重要。不当的配置可能导致 PHP-FPM 无法启动,进而使得 Nginx 无法解析 PHP 文件并返回 404 错误。 相关命令(适用于 CentOS 7+) 启动 PHP-FPM: 查看 PHP-FPM 是否启动: P…

    2024年 7月 26日
    196
  • 智能体(Agent)解析:工作流程与市场应用

    本文由 ChatMoney团队出品 引言 智能体(Agent)是一种在特定环境中自主行动、感知环境、做出决策并与其他智能体或人类进行交互的计算机程序或实体。它们具备自主性、反应性、社交性和适应性等特点,能够根据环境的变化调整自己的行为,以达到预设的目标。本文将详细拆解智能体从提示词接收、LLM大模型理解识别、知识库匹配、任务规划到行动执行等五个关键步骤,深入…

    2024年 7月 5日
    351

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信