如何设置绝对位置div中心对齐

时间:2014-04-08 21:10:33

标签: javascript jquery html css css3

我想用动画显示文本文本遮罩效果

这是我想要实现的目标:http://jsfiddle.net/qTWTH/2/

我无法将红色文字放在" center"在黑色文本之上,所以效果应该是这样的: http://jsfiddle.net/qTWTH/1/ * 但是对齐的中心 *

另外如何重复动画,按照JS,它只动画一次,我想在效果完成后重复JS。

代码:HTML

<div id="mainbox">
    <span id="black">Waiting for the task!</span>
    <span id="red">Waiting for the task!</span>
</div>

CSS

#mainbox {
    width:600px;
    text-align:center;
}
#black {
    color:black;
    font-weight:bold;
    font-size:2em;
}
#red {
    position:absolute;
    z-index:10;
    left:8px;
    width:0px;
    overflow:hidden;
    font-weight:bold;
    font-size:2em;
    color:red;
    white-space:nowrap;
}

JS

var red = document.getElementById('red');
var black = document.getElementById('black');
red.style.width = "0px";
var animation = setInterval(function () {
    console.log(red.style.width);
    if (red.style.width == "290px") clearInterval(animation);
    red.style.width = parseInt(red.style.width, 10) + 1 + "px";
}, 50);

如果您需要任何其他信息,请与我们联系。

请建议。

4 个答案:

答案 0 :(得分:4)

选中此fiddle

通过将div本身居中,并根据它定位红色,您将确保它们排成一行。

#mainbox {
    display: inline-block;
    position: relative;
}

html {
    text-align: center;
}

#red {
    left: 0;
}

答案 1 :(得分:1)

再次运行它并再次改变:

var red = document.getElementById('red');
var black = document.getElementById('black');
red.style.width = "0px";
var animation = setInterval(function(){
    console.log(red.style.width);
    if(red.style.width == "290px")
    {  
     red.style.width = "0px"; // here i have changed
}

    red.style.width = parseInt(red.style.width,10)+1 +"px";},50);

正确的小提琴:http://jsfiddle.net/arjun_chaudhary/qTWTH/22/

答案 2 :(得分:0)

我稍微修改了你的代码,你差不多了 http://codepen.io/nighrage/pen/EAmeF/

答案 3 :(得分:0)

    <div id="mainbox">
    <span id="black">Waiting for the task!</span>
    <div id="red">Waiting for the task!</div>
</div>

#red {
    z-index:10;
    left:8px;
    width:0px;
    overflow:hidden;
    font-weight:bold;
    font-size:2em;
    color:red;
    white-space:nowrap;
    margin: 0 auto;
    margin-top: -37px;
}

更改div的第二个范围