我想用动画显示文本文本遮罩效果
这是我想要实现的目标: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);
如果您需要任何其他信息,请与我们联系。
请建议。
答案 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);
答案 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的第二个范围