【发布时间】:2013-11-12 20:00:34
【问题描述】:
我正在设计一个在用户向下滚动页面后显示背景栏的导航。当他们滚动回顶部时,栏(背景颜色)消失。我正在使用以下说明进行操作:
Add/remove class with jquery based on vertical scroll?
它工作正常,但现在我想在滚动条上添加淡入淡出。我试过添加 fadeIn() 和 fadeOut() 方法。问题是当它淡出时,它会淡出整个#nav div!不仅仅是背景颜色。这是查询
$(function() {
//caches a jQuery object containing the header element
var header = $('.noBackground');
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 500) {
header.removeClass('noBackground').addClass('blackBackground').fadeIn();
} else {
header.removeClass('blackBackground').fadeOut().addClass('noBackground');
}
});
});
this fiddle上的完整、HTML、CSS 和 jQuery
【问题讨论】:
-
如果我理解您的问题,您想为
<div>的背景设置动画。看看这个 - jqueryui.com/animate. -
除非您使用 jQuery UI 或颜色插件,否则您无法真正使用 jQuery 淡化颜色,但为什么不使用 CSS3 过渡呢?
-
我使用 addClass 来加载 .blackBackground 和 removeClass 来加载 noBackground。默认没有背景。 CSS 过渡不起作用,因为我希望类切换,在某个点触发淡入淡出。
标签: javascript jquery scroll fadein fadeout