Skip to content

Commit dd21f2c

Browse files
committed
fix(bugs): modify duration
1 parent ba638c2 commit dd21f2c

1 file changed

Lines changed: 19 additions & 27 deletions

File tree

packages/canvas/container/src/container.ts

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -468,38 +468,30 @@ const setSelectRect = (
468468

469469
const getElementDurationTime = (elementId?: string) => {
470470
const element = elementId ? querySelectById(elementId) : getDocument().body
471-
472-
const durationTime = window.getComputedStyle(element).getPropertyValue('transition-duration')
473-
const delayTime = window.getComputedStyle(element).getPropertyValue('transition-delay')
474-
const transition = window.getComputedStyle(element).getPropertyValue('transition')
475-
let delayArray: string[] = []
476-
if (transition) {
477-
const delayRegex = /([0-9]+(\.[0-9]+)?)(s|ms|S|MS)/
478-
const transitions = transition.split(',')
479-
transitions.forEach((item) => {
480-
const parts = item.trim().split(' ')
481-
delayArray = delayArray.concat(parts)
482-
})
483-
delayArray = delayArray.filter((delay) => delayRegex.test(delay))
484-
}
485-
486-
if (durationTime) {
487-
delayArray.push(durationTime)
488-
}
489-
490-
if (delayTime) {
491-
delayArray.push(delayTime)
492-
}
493-
const delayTimes: any[] = delayArray.map((item) => {
494-
if (item) {
471+
const transitionDuration = window.getComputedStyle(element).getPropertyValue('transition-duration')
472+
const transitionDelay = window.getComputedStyle(element).getPropertyValue('transition-delay')
473+
let delayTime = 0
474+
const getMaxMillisecondNumber = (arr: string[]) => {
475+
const millisecondNumber = arr.map((item) => {
495476
if (item.endsWith('ms')) {
496477
return parseFloat(item)
497478
} else {
498479
return parseFloat(item) * 1000
499480
}
500-
}
501-
})
502-
return delayTimes.length ? Math.max(...delayTimes) : 0
481+
})
482+
return millisecondNumber.length ? Math.max(...millisecondNumber) : 0
483+
}
484+
if (transitionDuration) {
485+
const transitionDurations = transitionDuration.split(',')
486+
delayTime += getMaxMillisecondNumber(transitionDurations)
487+
}
488+
489+
if (transitionDelay) {
490+
const transitionDelays = transitionDelay.split(',')
491+
delayTime += getMaxMillisecondNumber(transitionDelays)
492+
}
493+
494+
return delayTime
503495
}
504496

505497
export const updateRect = (id?: string) => {

0 commit comments

Comments
 (0)