0

我只是尝试理解我必须使用的 jQuery 脚本。
现在我找到了以下片段:

$currPage.addClass( outClass ).on( animEndEventName, function() {
    $currPage.off( animEndEventName );
    endCurrPage = true;
    if( endNextPage ) {
        onEndAnimation( $currPage, $nextPage );
    }
});

Explenation what I already know:
$currPage: 这是当前页面。It's a <div class="page">
endCurrPage: 这是一个标准的布尔值 false
endNextPage: 类似于endCurrPage

我的问题是.on( animEndEventName,部分。变量如下所示animEndEventName

var animEndEventNames = {
    'WebkitAnimation' : 'webkitAnimationEnd',
    'OAnimation' : 'oAnimationEnd',
    'msAnimation' : 'MSAnimationEnd',
    'animation' : 'animationend'
},
animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ];

此代码由 Modernizr.prefixed() 编写:http: //modernizr.com/docs/#prefixed

jQuery 的.on()等待事件,在这里animEndEventName。那么这实际上是如何工作的呢?这部分我不是很明白...

我希望你能帮助我。如果您需要更多代码,请直接说出来。但我认为这是相关的部分。

4

1 回答 1

0
Modernizr.prefixed( 'animation')

这将为您当前的浏览器返回适当的“前缀”事件名称。例如,在 IE 中它将返回“msAnimation”。

animEndEventNames[ Modernizr.prefixed( 'animation' ) ];

然后,这将获取该值并进行查找animEndEventNames以获取匹配的结束事件名称。对于 IE,“MSAnimationEnd”。

$currPage.on( animEndEventName,

这将绑定一个处理程序,该处理程序将在触发适合浏览器的动画结束事件时触发。

这个网站有一个很好的解释为什么需要这样做。

于 2013-10-11T15:23:44.303 回答