0

我正在开发一个博客主题,该主题使用 inview 插件来使用 J & K 滚动,并将一个类应用于正在查看的文章。唯一的问题是,由于我有一台分辨率很大的mac,一次查看的文章不止1篇,所以下面的脚本将“inview”类添加到(通常对我来说是3篇文章)几篇文章中时间。有没有办法修改它,所以它只将“inview”类添加到用户屏幕上的第一篇文章中?从技术上讲,这可能不是页面上的第一篇文章,只是少数几个视图中的第一篇。任何帮助表示赞赏。

$('article').each(function(){
        $(this).bind('inview', function (event, visible) {
            if (visible == true) {
                $(this).addClass("inview");
            }

            else {
                $(this).removeClass("inview");
            }
        });
    });
4

2 回答 2

0

您可以随时转到 jquery.inview.js 第 97 行,上面写着

$element.data('inview', visiblePartsMerged).trigger('inview', [true, visiblePartX, visiblePartY]);

在此之前,添加

if ($element.prev(".inview").length < 1)

因此,它会检查在要触发事件“inview”的元素之前是否存在具有类“inview”的元素,其中可见 = true。

于 2012-07-13T05:22:05.970 回答
0

如果我正确理解了您的问题,我认为您可以在 .each 函数中添加一个 index 参数。像这样:

$('article').each(function(index){
        if( index == 0 )
        {
            $(this).bind('inview', function (event, visible) {
                if (visible == true) {
                    $(this).addClass("inview");
                }

                else {
                    $(this).removeClass("inview");
                }
            });
        }
    });

这会将类“inview”添加到第一篇文章中。

于 2012-07-13T04:21:12.300 回答