【问题标题】:how does CSS determine which way to animate a transition?CSS如何确定动画过渡的方式?
【发布时间】:2012-08-23 02:59:35
【问题描述】:

我有一个横幅代码,当悬停在上面时会显示一个下拉部分:

下面的 HTML 代码:

<div id="top_wrapper" class="hori_wrapper wrapper">
    <div id="top" class="hori_banner banner"></div>
    <div id="top_reveal" class="hori_reveal reveal"></div>
</div>

还有 CSS:

.wrapper {
border: dashed;
position: relative;
}

.banner {
background: blue;
position: relative;
}

.reveal {
background: red;
position: absolute;
z-index: 1;
}

.hori_wrapper {
width: 300px;
height: 50px;
clear: both;
}

.hori_banner {
width: 300px;
height: 50px;
}

.hori_reveal {
width: 300px;
height: 0px;
}

#top:hover + #top_reveal, #top_reveal:hover {
-webkit-transition: height 1s ease-in .5s;
-o-transition: height 1s ease-in .5s;
-moz-transition: height 1s ease-in .5s;
-transition: height 1s ease-in .5s;
height: 300px;
top: 50px;
}

基本上,我想知道的是:CSS 如何确定它应该向下动画而不是其他方向?

谢谢!

【问题讨论】:

    标签: css css-transitions css-animations


    【解决方案1】:

    所发生的只是它转换到如果属性设置正常会发生的情况。

    换句话说,如果高度是 300px,顶部是 50px,它会是什么样子?

    没有什么比这更复杂的了,这就是为什么不支持过渡的浏览器仍然可以工作,只是没有动画。

    【讨论】:

    • 但是例如,如果它是正确的:50px,它仍然会呈现它向下下降。它可以从任一侧或自下而上渲染它吗?我想我想问的是:浏览器用来决定这个的规则是什么?
    • 嗯,这不是过渡的东西,这只是 CSS 的东西。它所做的只是从开始设置到结束,无论看起来如何。没有任何真正的规则,因为只有一种方法可以做到这一点。如果你从右:0 到右:50 像素,那么你只需穿过右:1 像素,右:2 像素等,直到你到达 50 像素。
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 2018-04-20
    • 2020-03-20
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    相关资源
    最近更新 更多