我尝试淡化内容的顶部,使其到达具有半透明背景的固定导航栏。我有一些工作,但您会看到两个问题:


所有内容逐渐淡出,而不仅仅是固定导航。内容应以逐行速率逐渐消失。
由于选择器类,所有其他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/

最佳答案

我更改了您的代码:

$(window).on('scroll', function () {
    $('.section').each(function (index, item) {
        $(item).children().each(function (indexChild, child) {
            var st = $(window).scrollTop();
            st = $(window).scrollTop() - $(child).offset().top + 10;
            $(child).css({ 'opacity': (1 - st / 20) });
        });

    });
});


http://jsfiddle.net/x5JKC/3/

编辑除数(20)或删除+10以减小/增加效果。

编辑:注释更改了隐藏元素的方法(在大元素上进行渐进式隐藏),然后尝试使用渐变作为蒙版并随着滚动向下滚动:

<div class="section red">
    <div class="mask red"> </div>
    <h1>section headline</h1>
    <p>first paragraph</p>
    <p>second paragraph</p>
    <p>third paragraph</p>
</div>

.mask.red{
    position:absolute;
    width:100%;
    height:1px;
    background: -webkit-linear-gradient(red, rgba(255,0,0,0)); /* For Safari 5.1 to 6.0 */
    background: -o-linear-gradient(red, rgba(255,0,0,0)); /* For Opera 11.1 to 12.0 */
    background: -moz-linear-gradient(red, rgba(255,0,0,0)); /* For Firefox 3.6 to 15 */
   background: linear-gradient(red, rgba(255,0,0,0)); /* Standard syntax */
}

$(window).on('scroll', function () {
    $('.section .mask').each(function (index, item) {
            var heightMask = $(window).scrollTop() - $(item).offset().top+90;
        console.log(heightMask);
        $(item).css({height:heightMask});
        });
});

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

10-16 15:31