窗口大小的setInterval + jQuery CSS动画

时间:2013-04-04 15:20:30

标签: jquery css animation setinterval window-resize

我正在尝试解决这个问题,我已经尝试了各种方法,虽然从逻辑上说它应该可以工作,但事实并非如此。任何帮助都会很棒,因为我在编码方面不是很好。

所以我试图将一个物体从左侧动画到右侧末端。并且定位因屏幕尺寸而异。

这是迄今为止我所拥有的。我正在检测用户的浏览器大小,但是我想在新的大小调整检测时也销毁setIntervals。

showViewportSize();
var $box = $('#box');

$(window).resize(function (e) {
    window.clearInterval('animation');
    showViewportSize();
});

function showViewportSize() {
    var width = $(window).width();
    var height = $(window).height();

    if (width <= 1024) {
        var box = setInterval(function () {
            $box.animate({
                "left": "+1200"
            }, 40000, function () {
                $box.removeAttr("style");
            });
        }, 400);
    }

    if ((width <= 1440) && (width > 1025)) {
        var box = setInterval(function () {
            $box.animate({
                "left": "+1200"
            }, 40000, function () {
                $box.removeAttr("style");
            });
        }, 400);
    }

    if (width >= 2000) {
        var box = setInterval(function () {
            $box.animate({
                "left": "+1200"
            }, 40000, function () {
                $box.removeAttr("style");
            });
        }, 400);
    }
}

1 个答案:

答案 0 :(得分:0)

CSS3过渡与好的'ol媒体查询混合在一起怎么样?

#box {
    left: 0;

    -webkit-transition: left 0.4s ease-in-out;
    -moz-transition: left 0.4s ease-in-out;
    -o-transition: left 0.4s ease-in-out;
    transition: left 0.4s ease-in-out;
}

@media screen and (min-width : 1024px) {
    #box {
        left: 1200px;
    }
}

应该有效,但尚未经过测试。