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>
关于我们
本文由ChatMoney团队出品,ChatMoney专注于AI应用落地与变现,我们提供全套、持续更新的AI源码系统与可执行的变现方案,致力于帮助更多人利用AI来变现,欢迎进入ChatMoney获取更多AI变现方案!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)