Javascript 使用TweenMax以随机顺序交错动画

Javascript 使用TweenMax以随机顺序交错动画,javascript,jquery,animation,gsap,Javascript,Jquery,Animation,Gsap,我正在尝试使用TweenMax创建一个Staggento()动画,它以随机顺序影响元素,这意味着我不希望实际的动画是随机的,而是它的顺序 为此,我使用此函数获取所有要设置动画和洗牌的元素: $.fn.shuffle = function() { var allElems = this.get(), getRandom = function(max) { return Math.floor(Math.random() * max);

我正在尝试使用TweenMax创建一个Staggento()动画,它以随机顺序影响元素,这意味着我不希望实际的动画是随机的,而是它的顺序

为此,我使用此函数获取所有要设置动画和洗牌的元素:

$.fn.shuffle = function() {

    var allElems = this.get(),
        getRandom = function(max) {
            return Math.floor(Math.random() * max);
        },
        shuffled = $.map(allElems, function(){
            var random = getRandom(allElems.length),
                randEl = $(allElems[random]).clone(true)[0];
                allElems.splice(random, 1);
                return randEl;
        });

    return $(shuffled);

};

var elements = $('.animate').shuffle();
然后,我用午餐向动画讲述:

TweenMax.staggerTo(elements, 0.1, {y: 100, ease: Quad.easeInOut}, 0.1);
但当然,我后来意识到我完全错了,因为TweenMax并没有为实际的DOM元素制作动画,而是虚拟的克隆

不幸的是,我不知道如何从这里开始


有人能帮我吗?谢谢

我可能无法理解您的场景,但我认为您的问题更多的是将jQuery元素数组随机化。你看了吗

  • 将元素转换为数组,如下所示:
    var elements=$('.animate').toArray()
  • 使用以下技术洗牌此数组:
    elements.sort(function(){return 0.5-Math.random()})。感谢CSS-Tricks.com
  • 然后将这个新数组馈送到
    staggetto
    调用:
    TweenMax.staggetto(elements,0.1,{y:100,ease:Quad.easeInOut},0.1)即您已经拥有的内容
  • 快走
  • 请注意,对于洗牌数组,有很多方法