Javascript div标记的单个动画事件

Javascript div标记的单个动画事件,javascript,html,css,events,animation,Javascript,Html,Css,Events,Animation,如何为标记设置单个动画事件 在我的例子中,div#1和div#2的事件(两个单独的事件)同时被激活,这不是我想要的 div.page向左移动后,它必须变为绿色(10秒) div.subpage下降后,它必须变为黑色(3秒) 而不是一次绘制两个块(3秒) 我的例子是: .第页{ 显示:块; 位置:绝对位置; 左:200px; 顶部:100px; 宽度:200px; 高度:500px; 文本对齐:居中; 颜色:#ffffff; 背景色:#bb0000; } .网页动画{ 动画:moveRightP

如何为
标记设置单个动画事件

在我的例子中,
div#1
div#2
的事件(两个单独的事件)同时被激活,这不是我想要的

div.page
向左移动后,它必须变为绿色(10秒)

div.subpage
下降后,它必须变为黑色(3秒)

而不是一次绘制两个块(3秒)

我的例子是:


.第页{
显示:块;
位置:绝对位置;
左:200px;
顶部:100px;
宽度:200px;
高度:500px;
文本对齐:居中;
颜色:#ffffff;
背景色:#bb0000;
}
.网页动画{
动画:moveRightPrevious 10.0s轻松播放;
-webkit动画:moveRightPrevious 10.0s易用性;
}
@关键帧移动到上一帧{
来自{transform:translateX(0%);}
到{转换:translateX(500%);}
}
@-webkit关键帧moveRightPrevious{
来自{-webkit转换:translateX(0%);}
到{-webkit转换:translateX(500%);}
}
.子页{
显示:块;
位置:绝对位置;
左:50px;
顶部:50px;
宽度:100px;
高度:100px;
背景色:#BB00;
}
.亚页动画{
动画:MoveBottom3.0,两者都轻松;
-webkit动画:MoveBottom3.0s,两者都轻松;
}
@关键帧移动到上一帧{
来自{transform:translateY(0%);}
到{transform:translateY(300%);}
}
@-webkit关键帧移动到上一个{
来自{-webkit转换:translateY(0%);}
到{-webkit转换:translateY(300%);}
}
#绿色的{
背景色:#00bb00;
}
#黑色的{
背景色:#000000;
}
单击任意位置
$(窗口)。单击(函数(){
var pageUnit=$(“.page”);
pageUnit.data('originalClassList',pageUnit.attr('class');
var子页面单位=$(“.subpage”);
subpageUnit.data('originalClassList',subpageUnit.attr('class'));
pageUnit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',函数()
{
pageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
pageUnit.attr('id','green');
});
子页面unit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend',函数()
{
subpageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
subpageUnit.attr('id','black');
}); 
pageUnit.attr('class',pageUnit.data('originalClassList')+'page anim');
subpageUnit.attr('class',subpageUnit.data('originalClassList')+'subpageanim');
});

在注释之后,动画事件被冒泡到包含的div

正如您在小提琴中看到的,我将事件作为
e
传递,然后在
子页面上调用
e.stopPropagation()


这将停止调用父容器,该容器也具有相同事件的侦听器。

在注释之后,发生的是动画事件被冒泡到包含的div

正如您在小提琴中看到的,我将事件作为
e
传递,然后在
子页面上调用
e.stopPropagation()


这将停止调用父容器,该容器也具有相同事件的侦听器。

请查找附加的链接

资料来源:

$(window).click(function(){

    var pageUnit = $(".page");
    pageUnit.data('originalClassList', pageUnit.attr('class'));

    var subpageUnit = $(".subpage");
    subpageUnit.data('originalClassList', subpageUnit.attr('class'));

    pageUnit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function()
    {
        pageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');

        pageUnit.attr('id', 'green');
  subpageUnit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function()
    {
        subpageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');

        subpageUnit.attr('id', 'black');        
    });
subpageUnit.attr('class', subpageUnit.data('originalClassList') + ' subpage-anim'); 
    });

    pageUnit.attr('class', pageUnit.data('originalClassList') + ' page-anim');

});

请查找所附链接

资料来源:

$(window).click(function(){

    var pageUnit = $(".page");
    pageUnit.data('originalClassList', pageUnit.attr('class'));

    var subpageUnit = $(".subpage");
    subpageUnit.data('originalClassList', subpageUnit.attr('class'));

    pageUnit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function()
    {
        pageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');

        pageUnit.attr('id', 'green');
  subpageUnit.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function()
    {
        subpageUnit.off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');

        subpageUnit.attr('id', 'black');        
    });
subpageUnit.attr('class', subpageUnit.data('originalClassList') + ' subpage-anim'); 
    });

    pageUnit.attr('class', pageUnit.data('originalClassList') + ' page-anim');

});

请在带有JSFIDLE或SIMILAREABLE的MVCE中显示您的尝试:)我在StackOverflow上使用链接和代码的痛苦请在带有JSFIDLE或SIMILAREABLE的MVCE中显示您的尝试:)我在StackOverflow上使用链接和代码的痛苦您的示例显示同步(连续)动画,但异步(并行)动画是必需的,您可以使用setTimeout函数。请参考下面的链接,希望对您有所帮助。setTimeout-这不是一种通用的方式:(动画时间可以更改,这意味着我也应该更改Timeout您的示例显示同步(连续)动画,但异步(并行)动画)动画是必需的。您可以使用setTimeout功能。请参考下面的链接,希望它能帮助您。setTimeout-这不是一种通用的方法:(动画的时间可以更改,这意味着我也应该更改timeoutno,动画必须在同一时间(0秒)开始小(子)块将在第一个时间完成移动,并且必须以黑色(3秒)绘制大块将在第二个时间完成移动,并且必须以绿色(10秒)绘制更新了JSFIDLE,让我知道这是否对您有效。好的,在这种情况下,e.stopPropagation()有效。现在,更困难的情况(我的)1]等待动画(2sec),2]单击按钮“单击此处”,3]等待3秒钟以上4]单击按钮“单击此处”,然后出现损坏的垂直动画:(.为什么!!?我认为$()中存在问题。on('animationend'),但我错了不,动画必须在同一时间(0秒)启动小(子)块将在第一个完成运动,并必须以黑色(3秒)绘制大块将在第二个完成运动,并必须以绿色(10秒)绘制更新了JSFIDLE,如果对你有效,请告诉我。好的,