简化功能,这样就不会太大

时间:2014-02-14 21:44:08

标签: javascript jquery

我有这个代码,这样每个元素在完成时都会产生滚动效果:我不断重复每个元素的函数,问题是8个元素用不同的类添加函数,代码会非常大。

$(window).scroll(function () {
    $('#section6').each(function () {
        var imagePos = $(this).offset().top;
        var topOfWindow = $(window).scrollTop();

        if (imagePos < topOfWindow + 200) {
            svgEstatua.start();
        }
    });

});

$(window).scroll(function () {
    $('#section2').each(function () {
        var imagePos = $(this).offset().top;
        var topOfWindow = $(window).scrollTop();

        if (imagePos < topOfWindow + 225) {
            svgBrain.start();
        }
    });

});
// must 5

数组:

var groupSvg = [svgManos, svgSuper, svgInnovation, svgEstatua, svgBrain, svgBalanza];

1 个答案:

答案 0 :(得分:0)

取出公共代码并执行类似的操作

function common(selector, svgObject, offset) {
    $(selector).each(function () {
        var imagePos = $(this).offset().top,
            topOfWindow = $(window).scrollTop();

        if (imagePos < topOfWindow + offset) {
            svgObject.start();
        }
    });
}

$(window).scroll(function () {
    common('#section6', svgEstatua, 200);
});

$(window).scroll(function () {
    common('#section2', svgBrain, 225);
});

然后,您可以使用数组或对象进行循环。