我正在开发一个html5应用程序,我有一个固定页眉和一个固定的页脚。
当我点击页脚时,它应该向上滑动,直到距离标题10个像素。
标题也应该发生同样的事情。
<div class="header"></div>
<div class="content"></div>
<div class="footer"></div>
默认布局的CSS很简单:我只使用顶部和底部的绝对定位。
.header, .footer {
min-height:25px;
background:grey;
position:absolute;
left:0;
z-index:5;
/** transition **/
transition: all 1s;
}
.header {
top:0;
background:red;
}
.footer {
bottom:0;
background:yellow;
}
.header.max {
bottom:35px;
}
.footer.max {
top:35px;
}
不是它来到动画部分。 我不想使用Javascript动画!只有CSS!
如果单击页眉或页脚,我只需将类max
添加到元素:
$(".header, .footer, .content").on("click", function () {
$(".max").removeClass("max");
$(this).addClass("max");
});
动画看起来应该从底部展开。
我创建了JS-Fiddle。您可以看到问题恰好与页脚/标题的顶部和底部定位有关。
有谁知道如何解决这个问题,以便动画看起来像是从底部扩展?
谢谢!
答案 0 :(得分:1)
过渡元素需要设置为高度才能获得更流畅的动画效果。在我的示例中,我将页眉和页脚动画设置为 300px ,您需要使用JS通过window.height()将其更改为 update class =“max”或类似的东西。
解决10px要求的一种方法是onload get window.height()减去10px然后用最终结果更新class =“max”。
我在CSS中改变了什么:
.header, .footer {
min-height:25px;
background:grey;
position:absolute;
left:0;
z-index:5;
/** transition **/
transition:height 2s;
-webkit-transition:height 2s; /* Safari */
}
.header.max {
height:300px;
}
.footer.max {
height:300px;
}