feat: update css-animation
parent
34876b5b61
commit
aba16db339
|
@ -1,4 +1,22 @@
|
|||
const EVENT_NAME_MAP = {
|
||||
const START_EVENT_NAME_MAP = {
|
||||
transitionstart: {
|
||||
transition: 'transitionstart',
|
||||
WebkitTransition: 'webkitTransitionStart',
|
||||
MozTransition: 'mozTransitionStart',
|
||||
OTransition: 'oTransitionStart',
|
||||
msTransition: 'MSTransitionStart',
|
||||
},
|
||||
|
||||
animationstart: {
|
||||
animation: 'animationstart',
|
||||
WebkitAnimation: 'webkitAnimationStart',
|
||||
MozAnimation: 'mozAnimationStart',
|
||||
OAnimation: 'oAnimationStart',
|
||||
msAnimation: 'MSAnimationStart',
|
||||
},
|
||||
}
|
||||
|
||||
const END_EVENT_NAME_MAP = {
|
||||
transitionend: {
|
||||
transition: 'transitionend',
|
||||
WebkitTransition: 'webkitTransitionEnd',
|
||||
|
@ -16,6 +34,7 @@ const EVENT_NAME_MAP = {
|
|||
},
|
||||
}
|
||||
|
||||
const startEvents = []
|
||||
const endEvents = []
|
||||
|
||||
function detectEvents () {
|
||||
|
@ -23,24 +42,31 @@ function detectEvents () {
|
|||
const style = testEl.style
|
||||
|
||||
if (!('AnimationEvent' in window)) {
|
||||
delete EVENT_NAME_MAP.animationend.animation
|
||||
delete START_EVENT_NAME_MAP.animationstart.animation
|
||||
delete END_EVENT_NAME_MAP.animationend.animation
|
||||
}
|
||||
|
||||
if (!('TransitionEvent' in window)) {
|
||||
delete EVENT_NAME_MAP.transitionend.transition
|
||||
delete START_EVENT_NAME_MAP.transitionstart.transition
|
||||
delete END_EVENT_NAME_MAP.transitionend.transition
|
||||
}
|
||||
|
||||
for (const baseEventName in EVENT_NAME_MAP) {
|
||||
if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {
|
||||
const baseEvents = EVENT_NAME_MAP[baseEventName]
|
||||
for (const styleName in baseEvents) {
|
||||
if (styleName in style) {
|
||||
endEvents.push(baseEvents[styleName])
|
||||
break
|
||||
function process (EVENT_NAME_MAP, events) {
|
||||
for (const baseEventName in EVENT_NAME_MAP) {
|
||||
if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {
|
||||
const baseEvents = EVENT_NAME_MAP[baseEventName]
|
||||
for (const styleName in baseEvents) {
|
||||
if (styleName in style) {
|
||||
events.push(baseEvents[styleName])
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
process(START_EVENT_NAME_MAP, startEvents)
|
||||
process(END_EVENT_NAME_MAP, endEvents)
|
||||
}
|
||||
|
||||
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
||||
|
@ -56,6 +82,31 @@ function removeEventListener (node, eventName, eventListener) {
|
|||
}
|
||||
|
||||
const TransitionEvents = {
|
||||
// Start events
|
||||
startEvents,
|
||||
|
||||
addStartEventListener (node, eventListener) {
|
||||
if (startEvents.length === 0) {
|
||||
window.setTimeout(eventListener, 0)
|
||||
return
|
||||
}
|
||||
startEvents.forEach((startEvent) => {
|
||||
addEventListener(node, startEvent, eventListener)
|
||||
})
|
||||
},
|
||||
|
||||
removeStartEventListener (node, eventListener) {
|
||||
if (startEvents.length === 0) {
|
||||
return
|
||||
}
|
||||
startEvents.forEach((startEvent) => {
|
||||
removeEventListener(node, startEvent, eventListener)
|
||||
})
|
||||
},
|
||||
|
||||
// End events
|
||||
endEvents,
|
||||
|
||||
addEndEventListener (node, eventListener) {
|
||||
if (endEvents.length === 0) {
|
||||
window.setTimeout(eventListener, 0)
|
||||
|
@ -66,8 +117,6 @@ const TransitionEvents = {
|
|||
})
|
||||
},
|
||||
|
||||
endEvents,
|
||||
|
||||
removeEndEventListener (node, eventListener) {
|
||||
if (endEvents.length === 0) {
|
||||
return
|
||||
|
@ -79,4 +128,3 @@ const TransitionEvents = {
|
|||
}
|
||||
|
||||
export default TransitionEvents
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
// https://github.com/yiminghe/css-animation 1.5.0
|
||||
|
||||
import Event from './Event'
|
||||
import classes from 'component-classes'
|
||||
import { requestAnimationTimeout, cancelAnimationTimeout } from '../requestAnimationTimeout'
|
||||
|
|
|
@ -124,7 +124,6 @@
|
|||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mockdate": "^2.0.2",
|
||||
"moment-timezone": "^0.5.17",
|
||||
"nprogress": "^0.2.0",
|
||||
"postcss": "^6.0.20",
|
||||
"postcss-loader": "^2.1.2",
|
||||
|
@ -184,4 +183,4 @@
|
|||
"vue-ref": "^1.0.3",
|
||||
"warning": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue