1

我正在尝试为子菜单制作一种“折叠”效果,但我遇到了一些问题。

请参阅此代码笔: http ://codepen.io/anon/pen/Lotav

如您所见,默认情况下,子菜单旋转 90 度。当一个菜单项悬停时,子菜单动画到 0 度,给它一种折叠的效果。问题是,当子菜单开始动画时(90 度),它在它的宽度内居中。尽管子菜单的宽度为 X 像素,但在旋转时,宽度会缩小,然后在实际宽度 (X) 内居中。为了达到想要的效果,子菜单在旋转时必须位于左侧

我觉得很奇怪的第二个问题是,虽然我将子菜单的旋转设置为 90 度,但看起来并不完全如此。它有点重叠。90 度应该使它完全垂直(因此不可见),还是我错过了什么?

我只在 Chrome 24 和 Firefox 18 中测试过效果。我无法在 Firefox 中获得 3d 效果,它只是在宽度上缩小了,而在 chrome 中你实际上可以看到它旋转。我在 codepen 中打开了自动前缀选项,但我不知道它是否正常工作。

这是一个不理想效果的演示:http: //davidwalsh.name/demo/folding-animation.php

唯一的区别是我希望它从左侧而不是顶部“折叠”。

4

1 回答 1

0

第一个问题:更改transform-origin子菜单的默认值。利用:

transform-origin: left;

第二个问题是由perspective: 1000;- 如果您将其删除并仅在悬停时添加它,您将不会遇到此问题。

演示

于 2013-01-12T16:56:26.540 回答