`
zzc1684
  • 浏览: 1228002 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

webkitAnimationEnd事件与webkitTransitionEnd事件

    博客分类:
  • css
阅读更多

 

在CSS 3中,可以通过使用keyframe样式属性与animation样式属性实现animation动画,使用transition样式属性实现transition动画。

在WebKit引擎的浏览器(包括Chrome浏览器与Safari浏览器)中,存在与这两种动画功能相关的webkitAnimationEnd 事件与webkitTransitionEnd事件,本文对这两个事件进行详细介绍。本文中不对CSS 3中的animation动画功能以及transition动画功能进行详细介绍,如果想更多了解这方面的知识,可以参阅笔者所著《HTML 5与CSS 3权威指南》,或点击此处报名参加我们所办的面向企业(可赴企业现场培训)或面向个人的培训班,为了保证学员真正掌握所学知识,参加培训后一年内,凡学员上机时遇到所学课程内的各种问题,可在本站“技术论坛”栏目内提出后由本站专门回答。

在WebKit引擎的浏览器中,当CSS 3的animation动画执行结束时,触发webkitAnimationEnd事件,当CSS 3的transition动画执行结束时,触发webkitTransitionEnd事件。可以通过如下所示的代码捕捉这两个事件。

//捕捉webkitAnimationEnd事件
element.addEventListener('webkitAnimationEnd', end, false);
//捕捉webkitTransitionEnd事件
element.addEventListener('webkitTransitionEnd', end, false); 

webkitAnimationEnd事件

在WebKit引擎的浏览器中,当CSS 3的animation动画执行结束时,触发webkitAnimationEnd事件。在CSS 3中,使用如下所示的样式代码定义animation动画。

.element{ 
    -webkit-animation: anime 0.5s ease-in;
}
@-webkit-keyframes anime {
    0% {
        -webkit-transform: translate(0,0);
        opacity: 0.1;
    }
    50% {
        -webkit-transform: translate(100px,0);
        opacity: 0.5;
    }
    100% {
        -webkit-transform: translate(0,0);
        opacity: 1;
    }
}

上面这段代码执行功能为在0.5秒内将元素向右移动100像素后将其返回。我们可以在这个动画结束时触发的webkitAnimationEnd事件中执行一些代码,例如显示动画已执行结束,以及动画的执行次数。

动画执行次数:3

执行animation动画

webkitTransitionEnd事件

在WebKit引擎的浏览器中,当CSS 3的transition动画执行结束时,触发webkitTransitionEnd事件。在CSS 3中,使用如下所示的样式代码定义transition动画。

.element{ -webkit-transition: all 0.25s ease-in; }
.element.on{ -webkit-transform: translate(100px,0); }

上面这段代码执行功能同样为在0.5秒内将元素向右移动100像素后将其返回。我们可以在这个动画结束时触发的webkitTransitionEnd事件中执行一些代码,例如显示动画已执行结束,以及动画的执行次数。

动画执行次数:1

执行transition动画

从执行结果中我们可以看出,在每个动画的执行过程中,webkitTransitionEnd事件的触发次数比 webkitAnimationEnd事件的触发次数多一次,这是因为webkitAnimationEnd事件只在元素向右移动,然后向左返回之后触发 一次,而webkitTransitionEnd事件将在元素向右移动之后触发一次,在元素向左返回之后再触发一次。

接下来,我们为元素多指定一个opacity(透明度)样式属性,代码如下所示:

.element.on{
    -webkit-transform: translate(100px,0);
    opacity: 0.5;
}

然后将元素的transition样式属性值指定为all,然后观察执行一次动画时webkitTransitionEnd事件的触发次数。

从执行结果中我们可以看出,如果多使用一个样式属性,在每个动画执行的过程中webkitTransitionEnd事件的触发次数将多增加两次。也就是说webkitTransitionEnd事件将在元素的每个样式属性值发生改变之后触发一次。

分享到:
评论

相关推荐

    webkit事件处理

    每个事件都关联一个事件对象,它包含了与事件相关的属性和方法。例如: - `event.type`:事件类型,如'click'或'mouseover'。 - `event.target`:事件发生的具体元素。 - `event.pageX/pageY`:鼠标点击的位置相...

    css3动画事件—webkitAnimationEnd与计时器time事件

    用css3的animation完成一个动画,当只有这个动画完成时才执行令一个事件,比如让动画保持在终止的状态或其他一些事件,关于这个问题,本文给出详细的解决方案,感兴趣的朋友可以了解下或许对你有所帮助

    使用HTML5和CSS3构建基于webkit的Web-PageApp.doc

    2. **事件监听**: `addEventListener`用于监听`webkitTransitionEnd`、`webkitAnimationStart`等事件,处理动画和过渡结束。 3. **离线应用**: `localStorage`用于本地数据存储,`manifest`文件配合离线应用。 4. **...

    jQuery点击商品动画飞入加入购物车动画效果代码

    4. **JavaScript/jQuery**:`js`文件夹中的脚本将处理商品元素与购物车元素之间的交互。当用户点击商品时,jQuery会触发一个函数,该函数会调用CSS动画并更新商品的位置,使其看起来像是飞入购物车。 实现步骤如下...

    浅谈CSS3动画的回调处理

    通过以上示例,我们可以看到,尽管CSS3动画主要依赖CSS,但通过JavaScript与DOM交互,我们可以监听`transitionend`和`animationend`事件来实现回调处理,从而在动画执行的特定时刻执行额外的操作。这种方式为开发者...

    基于animate.css弹出框弹出关闭特效 (5星级)

    `webkitAnimationEnd`等事件监听器用于在动画结束时隐藏元素。 在描述中提到的博客文章(http://blog.csdn.net/libin_1/article/details/50450782)可能会提供更具体的实现细节和代码示例,包括如何触发弹出框的...

    vue移动端实现红包雨效果

    在上面提到的removeDom方法中,通过监听-webkitAnimationEnd事件,当红包动画播放完毕后,调用该方法来移除对应的DOM元素,保持页面性能的同时,让红包元素的动画重置,供下一个红包使用。 页面样式是通过嵌入的...

    用JQury实现的缩略图放大图片特效

    }).addClass('animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).css({ 'opacity': 1, 'transform': 'scale(1)' }); }); ``` 以上就是...

    jquery带提示音点击弹出消息提示框代码

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和动画效果。本项目涉及的是利用jQuery实现一个具有提示音功能的点击弹出消息提示框。这个功能可以提升用户体验,特别是在需要...

    w3cfuns网站首页jquery图片滚动特效代码

    $('.slider-items').addClass('shake').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { $(this).removeClass('shake'); }); }); $('.next').click...

    js螺旋动画效果的具体实例

    7. 动画执行和递归调用:为每个动画元素设置了对应的CSS动画属性,然后通过jQuery的one()方法监听动画结束事件(webkitAnimationEnd)。一旦某个动画播放完毕,函数会递归地再次调用自身以实现动画的连续播放,直至...

    jQuery封装animate.css的实例

    var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; $(this).addClass('animated ' + animationName).one(animationEnd, function () { $(this).removeClass...

    基于css3 animate制作绚丽的动画效果

    $('#yourElement').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', doSomething); ``` 这里,`doSomething`是你自定义的函数,会在动画结束后被调用。 总结起来,Animate....

    layer扩展打开/关闭动画的方法

    that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () { $(this).removeClass(animClass); }); } else { // 支持自定义的,...

Global site tag (gtag.js) - Google Analytics