我正在尝试动画效果,第二个动画效果应该延迟两秒钟。在此延迟中,div标签应该被隐藏,但它是可见的。
我首先会告诉你两个div标签,然后是我用来制作动画的css。
HTML:
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<div class="featuredprojectscontainer">
<div id="firstad" class="slideDown" >
</div><!-- end of first ad -->
<div id="secondad" class="animationdelay invisible slideDown2">
</div><!-- end of second ad -->
</div><!-- end of featured projects container -->
这是CSS:
/* this is for the featured projects section */
.featuredprojectscontainer{
width: 79%;
margin: 0 auto;
padding: 0;
display: block;
position: relative;
float: right;
left: 30%;
}
#firstad{
background-color: #70c1b3;
width: 900px;
height: 209pt;
visibility: hidden;
}
#secondad{
margin-top: 13.333px;
width: 900px;
height: 223pt;
background-color: blue;
visibility: hidden;
}
/*
==============================================
slideDown
==============================================
*/
.animationdelay{
-webkit-animation-delay: 2s; /* Chrome, Safari, Opera */
animation-delay: 2s;
}
.invisible, .notvisible{
visibility: hidden;
}
.slideDown{
animation-name: slideDown;
-webkit-animation-name: slideDown;
animation-duration: 1s;
-webkit-animation-duration: 1s;
animation-timing-function: ease;
-webkit-animation-timing-function: ease;
visibility: visible !important;
}
@keyframes slideDown {
0% {
transform: translateY(-100%);
}
50%{
transform: translateY(8%);
}
65%{
transform: translateY(-4%);
}
80%{
transform: translateY(4%);
}
95%{
transform: translateY(-2%);
}
100% {
transform: translateY(0%);
}
}
@-webkit-keyframes slideDown {
0% {
-webkit-transform: translateY(-100%);
}
50%{
-webkit-transform: translateY(8%);
}
65%{
-webkit-transform: translateY(-4%);
}
80%{
-webkit-transform: translateY(4%);
}
95%{
-webkit-transform: translateY(-2%);
}
100% {
-webkit-transform: translateY(0%);
}
}
/*
==============================================
More delayed slideDown
==============================================
*/
.slideDown2{
animation-delay: 3s;
animation-delay: 2s, 4ms;
animation-name: slideDown2;
-webkit-animation-name: slideDown2;
animation-duration: 1s;
-webkit-animation-duration: 1s;
-webkit-animation-delay: 1s; /* Chrome, Safari, Opera */
animation-delay: 2s;
animation-timing-function: ease;
-webkit-animation-timing-function: ease;
visibility: visible !important;
}
@keyframes slideDown2 {
0% {
transform: translateY(-100%);
}
50%{
transform: translateY(8%);
}
65%{
transform: translateY(-4%);
}
80%{
transform: translateY(4%);
}
95%{
transform: translateY(-2%);
}
100% {
transform: translateY(0%);
}
}
@-webkit-keyframes slideDown2 {
0% {
-webkit-transform: translateY(-100%);
}
50%{
-webkit-transform: translateY(8%);
}
65%{
-webkit-transform: translateY(-4%);
}
80%{
-webkit-transform: translateY(4%);
}
95%{
-webkit-transform: translateY(-2%);
}
100% {
-webkit-transform: translateY(0%);
}
}
这也可以在CodePen上查看,以便于阅读:click here。
在动画强制它从屏幕上下拉之前,蓝框应该是不可见的。但是盒子是可见的,然后它变得不可见并从顶部下降。这让我很困惑。
非常感谢任何帮助。
答案 0 :(得分:6)
在您的CSS(您的codepen中的第122行)中,您调用了:visibility: visible !important;
它位于样式表的较低位置并且具有!important
标记的事实导致它覆盖了第17行的先前规则。
删除规则将解决该问题。
答案 1 :(得分:6)
这是因为css特异性
visibility: visible !important;
中的.slideDown2
覆盖了#secondad
规则
创建更具体的规则以覆盖它
#secondad.invisible{
visibility: hidden !important;
}