将ScrollSpy添加到多个Div

时间:2012-04-09 21:35:13

标签: jquery

我有一个根据滚动间谍参数取消隐藏的div,但是如果我想添加另一个在不同条件下出现的div呢?我不希望两个div同时出现,只有在它们滚动之后才会出现。

下面是我的JQ:

<script type='text/javascript'>
    $(document).ready(function() {
            $('.nav').hide();
            $('#sticky-navigation').scrollspy({
                min: $('.nav').offset().top,
                onEnter: function(element, position) {
                    $(".nav").show('hide');
                },

            });
        });
</script>

谢谢! JOE

1 个答案:

答案 0 :(得分:2)

乔,

很难确切地知道你在帖子中的片段中尝试做了什么,但我认为你应该看看插件网站中的颜色示例:https://github.com/sxalexander/jquery-scrollspy/blob/master/examples/colors.html

这是执行Javascript“

的主要代码段
$('.color').each(function(i) {
    var position = $(this).position();
    console.log(position);
    console.log('min: ' + position.top + ' / max: ' + parseInt(position.top + $(this).height()));
    $(this).scrollspy({
        min: position.top,
        max: position.top + $(this).height(),
        onEnter: function(element, position) {
            if (console) console.log('entering ' + element.id);
            $("body").css('background-color', element.id);
        },
        onLeave: function(element, position) {
            if (console) console.log('leaving ' + element.id);
            //    $('body').css('background-color','#eee');
        }
    });
});

他给每个他试图触发一类“颜色”的div,然后使用一个循环为每个特定div分配一个函数。在这个例子中,他正在分配背景颜色,但你可以轻松地显示或隐藏div本身。如果您无法将行为填充到循环中,则始终可以为每个div单独分配scrollspy函数。

保罗