我正在尝试创建一个隐藏在文档顶部屏幕外的菜单.有一小部分显示将是可以收集的,这将使菜单的其余部分进入视图.试图将底部动画为自动但不起作用.想知道是否有人知道如何或更好的
http://codepen.io/anthony-dandrea/pen/EjqYqj
.hud是给我动画问题的类.
.hud { position: absolute; width: 100%; text-align: center; transition: all 1s; bottom: calc(100% - 39px); } .hud:hover { bottom: 80%; bottom: auto; }正如Patrick Allen在评论中已经提到的那样,您无法使用CSS动画/转换为“自动”值或转换为“自动”值.对于您的情况,您可以将其替换为transform:translate(),如下面的代码段所示,并实现相同的效果.
以下是相关的SCSS代码及其作用:
>转换:translateY(-100%)将元素内容向上移动容器元素的确切高度.这会隐藏整个容器.
>顶部:添加了39px,以便仍然显示V形图标,并且仅隐藏内容.
>在悬停时,通过执行transform:translateY(0%)使变换无效.这使元素回到原始位置.
>但是由于顶部:39px存在于未被覆盖的状态,容器的位置将稍微偏移,并且可以通过在悬停时添加top:0px来使其无效.
.hud { position: absolute; width: 100%; text-align: center; transition: all 1s; top: 39px; transform: translateY(-100%); &:hover { top: 0px; transform: translateY(0%); } }
body { background: #121111; } .hud { position: absolute; color: red; width: 100%; text-align: center; -webkit-transition: all 1s; transition: all 1s; top: 39px; -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); } .hud:hover { top: 0px; -webkit-transform: translateY(0%); -ms-transform: translateY(0%); transform: translateY(0%); } .pull-down { color: #e6e6e6; -webkit-transition: all 0.2s; transition: all 0.2s; cursor: pointer; height: 24px; margin-top: 15px; font-size: 1.5em; } .pull-down:hover { color: #fff; } .hud:hover .pull-down { color: #fff; -ms-transform: rotate(-180deg); -webkit-transform: rotate(-180deg); transform: rotate(-180deg); }
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" /> <div class="hud"> <div class="hud-internal"> <p>foobar</p> </div> <i class="fa fa-chevron-down pull-down" data-hud-toggle></i> </div>