transform学习

news/2024/11/25 11:49:32/
htmledit_views">

知识点讲解:

scale

是 CSS 的 transform 属性的一部分,用于对元素进行比例缩放。

transform: scale(sx);
transform: scale(sx, sy);
/* 
sx:表示元素在 水平轴(X轴)的缩放比例。
sy(可选):表示元素在 垂直轴(Y轴)的缩放比例。
如果 sy 省略,则默认等于 sx(即均匀缩放)
应用:
*//* 水平和垂直均匀缩放至 150% */
transform: scale(1.5);/* 仅水平缩放至 200%,垂直缩放至 50% */
transform: scale(2, 0.5);

transform-origin

用于transform 设置缩放的基准点(即元素的“中心点”)

transform-origin: x y;
/* 
x:水平位置,可使用 px、百分比(%)、或关键词(left, center, right)。
y:垂直位置,可使用 px、百分比(%)、或关键词(top, center, bottom)。
默认值:*/ 
transform-origin: 50% 50%; /* 元素中心点 */
/*应用:*/
/* 基于左上角进行缩放 */
transform-origin: 0 0;/* 基于右下角进行缩放 */
transform-origin: 100% 100%;/* 基于坐标点 (50px, 50px) 缩放 */
transform-origin: 50px 50px;

组合使用

transform 结合旋转(rotate)、位移(translate)、倾斜(skew)。

/* 缩放 1.5 倍,并旋转 45 度 */
transform: scale(1.5) rotate(45deg);/* 缩放后向右移动 100px */
transform: scale(0.8) translate(100px, 0);

动画效果

通过 transition 属性,给 scale 增加平滑过渡效果。

效果:

<template><div class="box"></div>
</template><script setup></script><style scoped>
.box {width: 100px;height: 100px;background-color: #4caf50;transition: transform 0.3s ease;
}.box:hover {transform: scale(1.5);
}
</style>

实践案例1-基于左右上角缩放:

效果:

<template><div class="container"><!-- 红色圆点标识在画布的左上角 --><div class="dot fixed-left-top"></div><!-- 左上角盒子 --><div class="box-wrapper"><div class="box" :class="{ 'scale-left-top': isLeftScaled }">缩放到左上角</div><button @click="toggleLeftScale">左上缩放</button></div><!-- 红色圆点标识在画布的右上角 --><div class="dot fixed-right-top"></div><!-- 右上角盒子 --><div class="box-wrapper"><div class="box" :class="{ 'scale-right-top': isRightScaled }">缩放到右上角</div><button @click="toggleRightScale">右上缩放</button></div></div>
</template><script setup>
import { ref } from 'vue';// 左上角缩放状态
const isLeftScaled = ref(false);// 右上角缩放状态
const isRightScaled = ref(false);// 切换左上角盒子的缩放状态
const toggleLeftScale = () => {isLeftScaled.value = !isLeftScaled.value;
};// 切换右上角盒子的缩放状态
const toggleRightScale = () => {isRightScaled.value = !isRightScaled.value;
};
</script><style scoped>
.container {display: flex;justify-content: space-between;align-items: flex-start;height: 100vh;padding: 20px;background-color: #f5f5f5;position: relative;/* 为固定红点提供定位上下文 */
}.box-wrapper {display: flex;flex-direction: column;align-items: center;gap: 10px;
}.box {width: 200px;height: 200px;background-color: #4caf50;color: white;font-size: 18px;font-weight: bold;display: flex;justify-content: center;align-items: center;border: 2px solid #333;transition: transform 0.3s ease, transform-origin 0.3s ease;
}/* 固定红色圆点标识 */
.dot {width: 10px;height: 10px;background-color: red;border-radius: 50%;position: absolute;z-index: 1;
}/* 左上角红点固定在画布左上角 */
.fixed-left-top {top: 20px;left: 20px;
}/* 右上角红点固定在画布右上角 */
.fixed-right-top {top: 20px;right: 20px;
}/* 
左上角:transform-origin: 0 0;
左下角:transform-origin: 0 100%;
右上角:transform-origin: 100% 0;
右下角:transform-origin: 100% 100%;*/
/* 左上角缩放 */
.scale-left-top {transform-origin: 0 0;transform: scale(0.7);
}/* 右上角缩放 */
.scale-right-top {transform-origin: 100% 0;transform: scale(0.7);
}button {padding: 10px 15px;font-size: 16px;cursor: pointer;background-color: #007bff;color: white;border: none;border-radius: 5px;transition: background-color 0.3s;
}button:hover {background-color: #0056b3;
}
</style>

实践案例2-悬浮动态缩放:

<template><div class="box"></div>
</template><script setup></script><style scoped>
.box {width: 100px;height: 100px;background-color: green;transition: transform 0.3s ease;
}.box:hover {transform: scale(1.2);/* 悬浮时缩放 1.2 倍 */
}
</style>

实践案例3-非均匀缩放:

<template><div class="box"></div>
</template><script setup></script><style scoped>
.box {width: 100px;height: 100px;background-color: orange;transform: scale(2, 0.5);/* 水平方向 2 倍,垂直方向 0.5 倍 */
}
</style>


http://www.ppmy.cn/news/1549813.html

相关文章

可编程序控制器组态

可编程序控制器组态是指对PLC&#xff08;Programmable Logic Controller&#xff09;进行配置和设置&#xff0c;以实现特定的控制逻辑和功能。它是PLC应用的关键步骤之一&#xff0c;决定了PLC如何运行和响应各种输入输出。以下是关于可编程序控制器组态的详细解释&#xff1…

接口性能优化的技巧

一. 索引 索引优化的成本是最小的&#xff0c;可以通过线上日志或者监控报告&#xff0c;查到某个接口用到的某条sql语句的耗时。 1.1 没加索引 sql语句中where条件的关键字段&#xff0c;或者order by后面的排序字段&#xff0c;忘了加索引。 1.2 索引没生效 可以通过exp…

Java 查询最大最小值 详解

在 Java 中&#xff0c;查询最大值和最小值是常见需求。以下将详细介绍 最大值和最小值的查询方法&#xff0c;包括适用于数组、集合、以及更复杂的数据结构的解决方案。 1. 使用 Math 类 Java 提供了 Math.max 和 Math.min 方法&#xff0c;可用于直接比较两个值。 适用场景…

VELO SkyOW+坐垫,一起Cityride温暖你的上海之旅

随着冬季的到来&#xff0c;上海的街头巷尾弥漫着一种独特的浪漫气息&#xff0c;当金黄的落叶从空中飘落&#xff0c;铺满路边&#xff0c;只是路过就仿佛骑进了一幅世界名画。无论是沿着外滩漫游&#xff0c;还是穿行在浦东的高楼间&#xff0c;骑行的方式总能让你充分体验到…

@EnableConfigurationProperties @ConfigurationProperties

EnableConfigurationProperties && ConfigurationProperties的使用时机 今天在写properties时想到了这个问题&#xff0c;为什么有时候我需要写EnableConfigurationProperties有时候又不需要呢&#xff1f;下面就详细讲讲。 Data Component ConfigurationProperties(pr…

关于图论建模的一份介绍

图论是离散数学的一部分&#xff0c;主要研究点与线所组成的形状。不过它们并非与几何中的图形类似&#xff0c;而是一种抽象化的产物&#xff0c;因此&#xff0c;我们可以通过这种方式来将一些生活、生产等中的问题进行建模&#xff0c;然后用数学规划等方式解决。所以&#…

docker学习笔记跟常用命令总结

Docker简介 Docker是一个用于构建运行传送应用程序的平台 镜像 将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜 镜像结构 镜像管理命令 命令说明docker pull拉取镜像docker push推送镜像docker images查看本地镜像docker rmi删除本地镜像docker image prune…

LLMops产品介绍

文章目录 字节跳动的扣子优点低代码开发丰富的插件与能力扩展强大的记忆与数据交互能力应用场景广泛 不足模型选择相对受限定制化程度受限输出效果有待提高应用部署范围有限市场认知度和用户基础不足 开悟大模型运营管理系统&#xff08;LLMOPS&#xff09;优点全生命周期管理降…