我希望有一个平滑的动画过渡1& 2,触发1时显示.我在这里完成了这个:
http://codepen.io/jacksonbeale/pen/epjcs使用负上边距,但问题是1的高度将根据导航中的项目数量而变化,所以这对我不起作用.
nav { margin-top:-95px; width:100%; Box-sizing:border-Box; z-index:5; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; &.showmenu { margin-top:0; } }
我当前的项目不允许我使用jQuery,任何js都需要由另一个开发人员编写.我只控制html& CSS.我似乎有点讨论这个问题所以如果有人能提出一个关于纯css方法的建议来完成我需要的东西会很棒.
解决方法
你可以这样做:
>在菜单和内容周围添加一个容器
>绝对定位您的内容
>然后,因为容器只有菜单的高度(内容不在位置:绝对;)你可以使用translateY来翻转和转出菜单,使用translateY(-100%)/ translateY(0)
HTML:
<div class="test"> <div><span class="menulink">Menu</span></div> <div class="content"> <nav> <ul> <li>One</li> <li>Two</li> <li>Three</li> <li>Three</li> <li>One</li> <li>Two</li> <li>Three</li> <li>Three</li> </ul> </nav> <div>content</div> </div> </div>
CSS :(抱歉,我不熟悉SCSS)
.test { width:400px; position:relative; > div,nav { border:3px solid #CCC; } > div:first-child { height:30px; z-index:10; background:teal; position:relative; z-index:1; span { float:right; display:table; height:100%; &:hover { cursor:pointer; } } } nav { width:100%; Box-sizing:border-Box; z-index:5; &.showmenu { margin-top:0; } } } .content > div{ min-height:200px; position:absolute; left:-3px; top:100%; width:100%; border:3px solid #ccc; } .content{ z-index:0; transform: translateY(-100%); -webkit-transform: translateY(-100%); -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; transition: all 1s ease-in-out; } .content.showmenu{ transform: translateY(0); -webkit-transform: translateY(0); }
jQuery:
$( ".menulink" ).click(function() { $( ".content" ).toggleClass( "showmenu" ); });