我不确定这是否可以按照它的构建方式进行,但我想在我的下拉列表中添加过渡效果。任何会使它看起来不那么波动的东西。下面的Codepen,SLide,fade等。
<div id="nav-wrap">
<ul>
<li id="link-one" class="orange">
<a href="#" class="parent-one-link"><span>Test</span></a>
<div class="subnav">
<ul>
<li><a href="#">Test</a></li>
<li><a href="#">Test</a></li>
<li><a href="#">Test</a></li>
<li><a href="#">Test</a></li>
<li><a href="#">Test</a></li>
<li><a href="#">Test</a></li>
</ul>
</div><!-- /.subnav -->
</li>
<li class="red"><a href="#"><span>Test</span></a></li>
<li class="pink"><a href="#"><span>Test</span></a></li>
<li class="purple"><a href="#"><span>Test</span></a></li>
<li class="blue"><a href="#"><span>Test</span></a></li>
<li class="green"><a href="#"><span>Test</span></a></li>
<li class="yellow-facebook"><a href="#"><span></span></a></li>
</ul>
</div> <!-- nav-wrap -->
#nav-wrap .doubleLine {
display: table-cell;
line-height: 1.2em;
width:65.275%;
}
#nav-wrap {
width:100%;
height:100px;
font-weight:500;
padding: 0;
left:0;
font-family: 'Raleway', Arial, sans-serif;
z-index:100;
float:left;
}
#nav-wrap ul {
list-style-type: none;
margin: 0;
padding:0;
text-transform: uppercase;
}
#nav-wrap ul li {
width:14.275%; /* ~(100/7) */
display:block;
float:left;
text-align:center;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#nav-wrap ul li + li {
border-left: 1px #fff solid !important;
}
#nav-wrap ul li a {
width:100%;
display: block;
height: 100%;
position: relative;
color:#FFFFFF !important;
text-decoration:none;
}
#nav-wrap ul li span {
display: inline-block;
vertical-align: middle;
height: 100px;
font-size:1.45em;
text-align: center;
padding: 0 5% 0 5%; /* was 0 20px */
line-height: 100px;
}
#nav-wrap ul li.yellow-facebook {
width:14.275%;
}
#nav-wrap ul li.yellow-facebook a {
background-size:130px 26px; /* > 25px */
}
li .subnav {
display: none;
/*position: absolute; */
clear: both;
margin-left: 0;
font-size:0.9em;
}
.subnav ul {
margin-left: 0;
float:left;
padding:0;
width:100%;
}
.subnav ul li {
margin: 0 0 0 0;
width:100% !important;
height:23px;
float:none !important;
}
.subnav ul li a {
padding: 10px 0 3px 0;
/*background-image: url(../images/submenu-background-divider.png);
background-repeat:no-repeat;
background-position:left;*/
}
#nav-wrap .subnav ul li + li {
border-left: none !important;
}
.subnav {
width:100%;
padding: 0;
margin: 0.05% 0 0 0;
border-top:#FFF 1px solid;
}
.subnav ul li a:link, a:active, a:visited {
text-decoration:none;
}
.subnav ul li a:hover {
color:#000;
text-decoration:none;
}
li:hover > .subnav {display:inline-block; left:0;}
#nav-wrap ul li.orange a {
background-color:#f37028;
}
#nav-wrap ul li.orange a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.red a {
background-color:#ed1b24;
}
#nav-wrap ul li.red a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.pink a {
background-color:#e54198;
}
#nav-wrap ul li.pink a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.purple a {
background-color:#6b439c;
}
#nav-wrap ul li.purple a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.blue a {
background-color:#0193cf;
}
#nav-wrap ul li.blue a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.green a {
background-color:#80c02c;
}
#nav-wrap ul li.green a:hover {
color: #231f20 !important;
}
#nav-wrap ul li.yellow-facebook a {
background-color:#fff300;
background-image:url(../images/social-media/facebook-text.png);
background-repeat:no-repeat;
background-position:center;
}
#nav-wrap ul li.yellow-facebook a:hover {
color: #231f20;
background-image:url(../images/social-media/facebook-text_over.png);
}
答案 0 :(得分:1)
您可以尝试CSS3过渡,只需要使用不透明度而不是显示无。
添加此
li:hover > .subnav {
display:inline-block;
left:0;
-webkit-transition: all 0.4s ease-in;
-moz-transition: all 0.4s ease-in;
-o-transition: all 0.4s ease-in;
transition: all 0.4s ease-in;
opacity:1.0;
}
并将display none更改为:
li .subnav {
opacity:0;
/*position: absolute; */
clear: both;
margin-left: 0;
font-size:0.9em;
}
如果您愿意,Jquery可以做一些滑动,但设置起来有点简单,如果您愿意而不是淡入,也可以调整高度以使其向下滑动。
答案 1 :(得分:0)
把它放到动画元素CSS:
transform: translate3d(0, 0, 0);
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
它基本上欺骗了浏览器,转换或动画是3D并启用GPU加速并禁用基于webkit的浏览器中的双面平面。