如何防止CSS伪元素在动画过程中消失?

时间:2013-07-20 21:42:03

标签: javascript jquery html css

这是我的(简化)情况:

http://jsfiddle.net/qFhaq/

单击该按钮可启动扩展div高度的动画。当div正在扩展时,:after伪元素(包含文本'look')消失,然后在动画结束时重新出现。

有没有办法防止伪元素消失,以便它在整个动画中可见?

2 个答案:

答案 0 :(得分:12)

将“溢出”CSS规则添加到#main并将其设置为“visible!important;”

#main{
    width: 200px;
    height: 200px;
    background-color: #eee;
    border: 1px solid black;
    overflow:visible !important;
}

答案 1 :(得分:1)

我重写它使用了CSS3过渡:

JS(为了更快,您可以将其更改为vanilla js):

$(function(){
    $("#clicky").click(function(){
        $("#main").addClass('animate');
    });
});

<强> CSS:

#main{
    width: 200px;
    height: 200px;
    background-color: #eee;
    border: 1px solid black;
    -webkit-transition: height 2s linear;
}

#main:after{
    content: "look";
    height: 50px;
    background-color: white;
    margin-left: 210px;
    border: 1px solid black;
}

#main.animate{
    height: 500px;
}

http://jsfiddle.net/qFhaq/1/