使用animate单击div宽度达到50%之后,我使用伪附加了一个圆,但是当动画播放时它隐藏了。我也尝试使用div而不是伪元素,但没有成功。任何的想法?
$('a').click(function() {
$('div').animate({
width: 50 + "%"
}, 2000);
});
div {
width: 0%;
height: 2px;
background: red;
position: relative;
}
div span {
content: "";
position: absolute;
right: 0;
top: -2px;
width: 10px;
height: 10px;
background: red;
border-radius: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span></span>
</div>
<a>click</a>
我不想在播放动画时隐藏圆圈。
你可以使用overflow: initial !important;
作为div
$('a').click(function(){
$('div').animate({
width: 50 + "%"
}, 2000);
});
div {
width: 0%;
height: 2px;
background: red;
position: relative;
overflow: initial !important;
}
div span {
display:inline-block;
content: "";
position: absolute;
right: 0;
top: -2px;
width: 10px;
height: 10px;
background: red;
border-radius: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span></span>
</div>
<a>click</a>
你也可以使用transition
让CSS做动画。
HTML
<div></div>
<a>click</a>
CSS
div {
width: 0%;
height: 2px;
background: red;
position: relative;
transition: 2s;
}
div:after {
content: "";
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: 10px;
height: 10px;
background: red;
border-radius: 50%;
z-index: 1000;
}
jQuery的
$('a').click(function() {
$("div").css("width", "50%");
});
$('a').click(function() {
$("div").css("width", "50%");
});
div {
width: 0%;
height: 2px;
background: red;
position: relative;
transition: 2s;
}
div:after {
content: "";
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: 10px;
height: 10px;
background: red;
border-radius: 50%;
z-index: 1000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<a>click</a>