在导航栏上切换不透明度动画
Toggle opacity animation on nav bar
Objective:当导航栏到达滚动条上的特定位置时给予不透明度。
到目前为止它在负载上工作但是当向上滚动时不透明度不会回到 0.
function navanim() {
var window_top = $(window).scrollTop();
var div_top = $('#news').offset().top;
if (window_top > 500)
$('.nav').animate({
'opacity': '1'
}, 500);
else
$('.nav').css("opacity", 0);
}
$(function() {
$(window).scroll(navanim);
navanim();
});
试过您的代码后,问题似乎与动画有关,css 以及其他可能被过于频繁调用的方法(在每次滚动时)。
我根据你的想法重新实现了一个小例子:
上面的 jsfiddle 使用以下函数通过跟踪状态来检查是否需要动画,如果需要则执行该动画。
var navAnimation = (function() {
var news = $('#news'),
header = $('header'),
winTop = $(window).scrollTop(),
newsTop = news.offset().top,
show = winTop < newsTop;
return function navAnimation () {
winTop = $(window).scrollTop(),
newsTop = news.offset().top;
// Don't run uneccissarily
if (show && winTop < newsTop) return;
if (!show && winTop >= newsTop) return;
// If something changed, update our state
show = winTop < newsTop;
if (show) {
console.log('animate!');
header.animate({
opacity: 1
}, 500);
} else {
header.animate({
opacity: 0
}, 500);
}
};
})();
$( document ).ready(function(){
$( window ).scroll(navAnimation);
navAnimation();
});
Objective:当导航栏到达滚动条上的特定位置时给予不透明度。 到目前为止它在负载上工作但是当向上滚动时不透明度不会回到 0.
function navanim() {
var window_top = $(window).scrollTop();
var div_top = $('#news').offset().top;
if (window_top > 500)
$('.nav').animate({
'opacity': '1'
}, 500);
else
$('.nav').css("opacity", 0);
}
$(function() {
$(window).scroll(navanim);
navanim();
});
试过您的代码后,问题似乎与动画有关,css 以及其他可能被过于频繁调用的方法(在每次滚动时)。
我根据你的想法重新实现了一个小例子:
上面的 jsfiddle 使用以下函数通过跟踪状态来检查是否需要动画,如果需要则执行该动画。
var navAnimation = (function() {
var news = $('#news'),
header = $('header'),
winTop = $(window).scrollTop(),
newsTop = news.offset().top,
show = winTop < newsTop;
return function navAnimation () {
winTop = $(window).scrollTop(),
newsTop = news.offset().top;
// Don't run uneccissarily
if (show && winTop < newsTop) return;
if (!show && winTop >= newsTop) return;
// If something changed, update our state
show = winTop < newsTop;
if (show) {
console.log('animate!');
header.animate({
opacity: 1
}, 500);
} else {
header.animate({
opacity: 0
}, 500);
}
};
})();
$( document ).ready(function(){
$( window ).scroll(navAnimation);
navAnimation();
});