【发布时间】:2022-09-23 23:14:42
【问题描述】:
我想在 div 悬停时缩放它的大小,以便更详细地查看它的内容。
我对如何做到这一点有两个想法,首先有一个 onHover ,当悬停时会显示一个绝对定位的 div,它可能比相对 div 大 125%-130% 并将其放在顶部。 (我有点喜欢这个想法,因为它允许我使新的 div 具有与下面的内容不同的内容)
另一个想法只是使用变换来缩放原始 div。我真的不想这样做,因为“弹出”的 div 是底层内容的更详细版本。
我可以做到这一点没问题,但是我遇到的部分(并且似乎无法找到答案)是根据它在容器行中的位置在某个方向上缩放 div .
我在下面创建了一个描述它的图像。
默认行为类似于:
如您所见,默认行为是,当我们缩放时,我们向左对齐,额外的宽度将向外向右,额外的高度将向下
这个问题是,在最右边,缩放的 div 已经这样做了,但是由于它的位置/方向,它现在已经离开并向右(在容器外)。
同样,我希望 2 个中心 div 从中心而不是从左到右缩放。
请注意,并非所有 div 都会立即展开,但我只是为了这个问题的目的而以这种方式突出显示它。
我想要的结果(显示所有扩展)将类似于:
显然,随着它们全部展开,这有点难以看到,但如果我只显示一个中心 div 正在展开:
然后最右边
那么区别是什么呢?
首先,每个 div 基于它的相对容器垂直居中(这很容易做到),但我坚持的部分是如何告诉中心 div 从中心垂直和扩展水平,然后告诉最左边和最右边的div,从中心垂直扩展,但水平从左到右或从右到左等。
在上面的最后一张图中,div 知道它在容器的最右侧,不应该以默认方式展开,因为它会溢出容器,所以它会向内展开。
仅使用 CSS 是否可行?还是CSS和JS的结合。
我希望这是有道理的!
-
如果您使用的是变换比例,则变换原点将允许您指定比例从developer.mozilla.org/en-US/docs/Web/CSS/transform-origin 开始的位置
-
我假设这适用于我正在转换缩放 div 本身,但在我的示例中,我正在创建一个包含详细内容的新 div。因此,新的 div 并没有真正被缩放,而是只是一个 div,其大小比它的父级大 x%。是否建议使用这种方法,或者当我缩放时,清除初始 div 的内容以添加更详细的内容?
标签: javascript html css