为即将到来的导航菜单设置动画
Animating a navigation menu coming in
我有一些用jQuery优化的粘性菜单。我写了一些代码来检测我们所处的高度,在某个值之后,通过固定其位置值来降低导航并使其具有粘性!
这是代码:
$(window).scroll(function () {
var $locationY = $(window).scrollTop(),
$defaultY = 385;
if ( $locationY < $defaultY ){
$('#nav').removeClass("sticky")
}
else {
$('#nav').addClass("sticky")
}
});
问题是我该如何制作动画?为了很好地显示,例如从上到下的幻灯片。我想知道什么是正确的方法来使用幻灯片向下,动画。。。方法。
谢谢。
类似的东西?演示http://jsfiddle.net/yeyene/UZgXB/1/
不确定你的粘性菜单是否在加载时显示。
JQUERY
$(document).ready(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 200) {
$('#nav').stop()
.addClass('sticky')
.animate({
'padding': '1% 2% 1% 2%'
}, 400, "swing");
} else {
$('#nav').stop()
.removeClass('sticky').addClass('normal')
.animate({
'padding': '6% 2% 6% 2%'
}, 400, "swing");
}
});
});
CSS
#nav, .normal {
float:left;
margin:0;
padding:6% 2%;
width:96%;
background:red;
}
.sticky {
position:fixed;
left:0;
top:0;
}
我认为transition
可以帮助您。
#nav{
transition:top 2s ease;
}
并使用类似的postion:fixed;
和top:xxxpx;
定位#nav
.sticky{
position:fixed;
top:300px;
}
demo试试看。
我要做的是固定它的位置,它的顶部值等于0减去它的高度。然后将其设置为最高值0。
通过这种方式,它将从顶部滑动,就像facebook的时间线菜单一样。。。粘性类应该具有负的顶部值,JS会在动画中更正它。
$(window).scroll(function () {
var $locationY = $(window).scrollTop(),
$defaultY = 385;
if ( $locationY < $defaultY ){
$('#nav').removeClass("sticky")
}
else {
$('#nav').addClass("sticky").animate({top:0},400);
}
});
相关文章:
- 设置动画时,SVG/Raphael大圆圈会变形
- jQuery animate()函数没有't设置动画
- 对象获胜'如果qml中的其他地方定义了数字动画属性,则t设置动画
- 如何在NativeScript中从列表中删除项目时设置动画
- angularjs路线过渡如何以交互方式设置动画
- 如何通过justinaguilar.com设置动画延迟?[解决]
- 当滚动条到达容器底部时设置动画
- 设置动画时jQuery停止侦听事件
- jQuery在模糊时设置动画-但仅当模糊超出形式时
- Reactjs在不使用插件的情况下为离开组件设置动画
- 在要设置动画的所有方法之间进行选择
- ng设置动画以创建slideIn/slideOut过渡
- 设置动画/移动putImageData放置的画布图像
- TweenSite不设置动画
- 使用jquery为html元素文本的每个字符设置动画
- 如何使用ngAnimate在CSS类之间设置动画
- 为已设置动画的元素设置动画
- scrollTop按钮没有't设置动画
- 可以使用jQuery'移动HTML背景吗;s设置动画
- 仅为父对象的填充设置动画