@@ -468,38 +468,30 @@ const setSelectRect = (
468468
469469const 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 | m s | S | M S ) /
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
505497export const updateRect = ( id ?: string ) => {
0 commit comments