如何在靠近视口顶部的每个<li>上调用一个函数?</li>

时间:2012-02-28 07:57:01

标签: jquery offset viewport scrolltop

请帮忙。我正在失去这个睡眠! :)

我有一个短文列表;如果愿意,可以给他们打电话报价。我有一个固定的位置标题,高200像素,透明背景。我需要为用户滚动的每个帖子显示标题(因此是固定的定位),并且我希望当它们向上和向后滚动时,阅读帖子会消失(或者在不透明度方面显着降低);如果你愿意的话,带有200px垫的“lazyload”的倒数。当然,如果用户向相反方向滚动以使回发在视口中(并且在标题下方),我需要重新出现。

我对jQuery相当新,所以请耐心等待。我已经广泛搜索了一些帮助和提示,但还没有修复。非常感谢您的帮助!

样机:

Test Page

jQuery的:

$(document).ready(function(){

  var headerheight = $('#header').height();
  var scrollposition = $(window).scrollTop();

    $(window).scroll(function(){

        var offset = .offset();

        $('li').each(function() {

            if(scrollposition <= $(this)offset.top-headerheight){

            // 
            $(this).fadeOut(400);
            // 

            } else {

            //
            $(this).fadeIn(400);
            //

            }
        });
    });
});

2 个答案:

答案 0 :(得分:0)

$(document).ready(function(){

    var headerheight = $('#header').height();

    $(window).scroll(function(){
        var scrollposition = $(window).scrollTop();

        $('li').each(function() {
            var obj = $('.test');

            if(scrollposition >= headerheight){

                if(obj.css('display') == 'none') {
                    $('.test').fadeIn(400);
                }

            } else {

                if(obj.css('display') == 'block') {
                    $('.test').fadeOut(400);
                }

            }
        });
    });
});

它有很多缺陷和错误。但我的修改应该可以解决问题。因为我们只有在它永远不会更新时才捕获滚动位置。这将导致if语句总是以错误的方式:)这只会使.test类在淡入或淡出时淡入或淡出。

尝试一下,让我知道它是否有效:)

请记住,如果滚动位置高于或等于#header的高度,这会使.test类淡入/淡出 -

答案 1 :(得分:0)