比如通过以下代码.实现导航条上的每个li栏目,以不同的时间间隔,从上向下移动进来并显示
.my-navbar ul li {position: relative;opacity: 0;transform: translateY(-30px);transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .6s cubic-bezier(.165,.84,.44,1);
will-change: transform,opacity
}
.my-navbar ul li:nth-of-type(1) {transition-delay: 525ms
}
.my-navbar ul li:nth-of-type(2) {transition-delay: 550ms
}
.my-navbar ul li:nth-of-type(3) {transition-delay: 575ms
}
.my-navbar ul li:nth-of-type(4) {transition-delay: .6s
}
.loaded .my-navbar ul li {opacity: 1;transform: translateY(0)
}
但是,如果my-navbar ul li 这个
- 标签里面还有子元素.并且这个子元素是需要进行绝对定位之类的,则会失效.比如以下代码的位置会失效
-
.my-navbar ul li .menu {top: 570px;position: absolute;left: 0px;width: 1143px;}
解决办法是.动画操作的对象不应该是包含子元素的li,可以是li下面的a这个子元素.比如这样就行了
.my-navbar ul li a{opacity: 0;transform: translateY(-30px);transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .6s cubic-bezier(.165,.84,.44,1);will-change: transform,opacity } .my-navbar ul li:nth-of-type(1) a {transition-delay: 525ms } .my-navbar ul li:nth-of-type(2) a{transition-delay: 550ms } .my-navbar ul li:nth-of-type(3) a {transition-delay: 575ms } .my-navbar ul li:nth-of-type(4) a {transition-delay: .6s } .loaded .my-navbar ul li a {opacity: 1;transform: translateY(0) }
如下图,li下面还有menu这个子元素.所以.动画修改到a上.