jQuery动画只能使用一个元素

时间:2014-06-27 09:18:15

标签: javascript jquery css animation

  • 我需要让它适用于我的所有元素,在这些元素下什么都不应该消失(图像)。

  • 目前仅适用于div.logo代码

我想目前我的<h1>元素现在允许下面的动画的原因是,当我获得.top().left()等等时,你正在为列表中的最后一个元素。

我需要在结果列表中获取每个元素的边框。

非常感谢任何帮助

演示:http://jsfiddle.net/z9b8S/

JS:

function displayThese(selectorString) {
    var $heading = $(selectorString);
    var h1top = $heading.position().top;
    var h1bottom = h1top + $heading.height();
    var h1left = $heading.position().left;
    var h1right = h1top + $heading.width();

    var divs = $('li').filter(function () {
        var $e = $(this);
        var top = $e.position().top;
        var bottom = top + $e.height();
        var left = $e.position().left;
        var right = left + $e.width();

        return top > h1bottom || bottom < h1top || left > h1right || right < h1left;
    });
    return divs;
}

(function fadeInDiv() {
    var divsToChange = displayThese('h1, div.logo');
    var elem = divsToChange.eq(Math.floor(Math.random() * divsToChange.length));
    if (!elem.is(':visible')) {
        elem.prev().remove();
        elem.animate({
            opacity: 1
        }, Math.floor(Math.random() * 1000), fadeInDiv);
    } else {

        elem.animate({
            opacity: (Math.random() * 1)
        }, Math.floor(Math.random() * 1000), function () {
            window.setTimeout(fadeInDiv);
        });
    }

})();

$(window).resize(function () {
    // Get items that do not change    
    var divs = $('li').not(displayThese());
    divs.css({
        opacity: 0.3
    });
});

0 个答案:

没有答案