javascript - 当 div 到达固定导航时仅淡出顶部部分

标签 javascript jquery scrollbar opacity fade

当内容到达具有半透明背景的固定导航栏时,我试图淡化内容的顶部。我已经可以正常工作了,但是您会看到两个问题:

  1. 所有内容都会淡出,而不仅仅是接近固定导航的内容。内容应以逐行速率淡出。
  2. 由于选择器类的原因,所有其他 div 的所有内容都会消失。

如果有任何帮助,我将不胜感激!谢谢

var divs = $('.section').children();
$(window).on('scroll', function() {
  var st = $(this).scrollTop();
  divs.css({ 'opacity' : (1 - st/20) });
});

JS Fiddle 到目前为止:http://jsfiddle.net/x5JKC/

最佳答案

LIVE DEMO

var $section = $('.section');
var $window = $(window);
var fadeAt = 150; // start fade ad Npx from top
var zeroAt = 50 ; // Npx from top = 0 opacity

function fadeByApproach(){
    var st = $window.scrollTop();
    $.each($section, function(idx, el){
        var secPos = $(el).offset().top - st;
        if(secPos<fadeAt){       // Ignores other sections
            var $ch = $('*', this); // all elements 
            $.each($ch, function(){
                var top = $(this).offset().top - st;
                if(top<fadeAt){  // Ignores other childrrens
                    var opa = (top-zeroAt)/(fadeAt-zeroAt)/1;
                    $(this).html("TOP: "+top +'<br> Current Opacity: '+ opa);
                    this.style.opacity = opa;
                }
            });
        }
    });
}

$(window).on('scroll load resize', fadeByApproach);

您可能希望在滚动时运行函数,但也希望在加载和窗口调整大小时运行函数,就像我一样。

关于javascript - 当 div 到达固定导航时仅淡出顶部部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978184/

相关文章:

WPF:如何让 ListViewItems 适合窗口宽度并使用 TextEllipsis

c# - 面板和滚动条 - 紧凑框架

html - 滚动条调整页面大小

javascript - 为什么命名函数不起作用,而未命名函数却起作用?

javascript - 显示 DOM 对象内容

javascript - 在 addClass/removeClass 中使用多个变量

javascript - 如何使用ajax检查本地系统中是否存在图像

javascript - 如何检查对象是一个集合?

javascript - 是否可以处理 HTML 输入字段中的向上/向下键?

javascript - 计算表行并填充总计字段