【发布时间】:2014-05-29 20:38:37
【问题描述】:
目标
我正在使用 jQuery 制作可折叠侧边栏来制作动画。我想在侧边栏上放置垂直文本作为标签,并且可以在 animateOut/animateIn 效果上进行交换。
通常我会使用我只是垂直交换的文本图像,然后将其切换为动画,但使用 CSS3 转换我希望它可以工作。
问题
我面临的问题是,在我的旋转容器上设置高度会使其水平扩展(因为它旋转了 90 度),所以这不起作用。然后我尝试设置宽度(希望它会垂直扩展,充当高度),但这有一个奇怪的效果,导致我的父容器的宽度也扩展。
修复?
如何在不影响父容器宽度的情况下设置旋转(变换)元素的高度?到目前为止,我一直无法做到这一点。
现场示例
这是一个演示我的问题的小提琴:Fiddle
collapse-pane 类是我旋转的,包含我在其中放置文本的跨度。你会注意到它有一个宽度设置,可以加宽边框,但也会影响父容器。
代码:
CSS:
.right-panel{
position:fixed;
right:0;
top:0;
bottom:0;
border:1px solid #ccc;
background-color:#efefef;
}
.collapse-pane{
margin-top:50px;
width:30px;
border:1px solid #999;
cursor:pointer;
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
.collapse-pane span{
padding:5px;
}
HTML
<div class="right-panel">
<div class="collapse-pane">
<span class="expand">Expand</span>
</div>
<div style="width:0;" class="panel-body">
<div style="display:none;" class="panel-body-inner">
adsfasdfasdf
</div>
</div>
</div>
这里的图片也显示了问题,因此您不必查看 Fiddle。
更新
我的问题陈述更清楚了,因为我原来的帖子混淆了这些问题。
感谢您的帮助!
【问题讨论】:
-
@malcoda 你为什么要改造容器?只需转换容器内的内容即可。
-
已更新以包含代码。
-
@Malcoda - 给你的
collapse-panedisplay: inline-block;。顺便说一句,你不需要任何 JS 代码来做任何你正在做的事情。 -
JS 与问题无关。如何在不影响父容器的情况下向旋转容器添加高度?将显示设置为内联块似乎没有帮助。
-
@Malcoda 虽然您的问题很好地记录了问题,但我无法理解所需的布局。看看这个小提琴,告诉我这就是你想要的:jsfiddle.net/webtiki/8mnRF/17
标签: javascript jquery html css css-transforms