@@ -41,6 +41,9 @@ class SideNav {
41
41
this . currentX = 0 ;
42
42
this . touchingSideNav = false ;
43
43
44
+ this . transitionEndProperty = null ;
45
+ this . transitionEndTime = 0 ;
46
+
44
47
this . supportsPassive = undefined ;
45
48
this . addEventListeners ( ) ;
46
49
}
@@ -119,6 +122,13 @@ class SideNav {
119
122
}
120
123
121
124
onTransitionEnd ( evt ) {
125
+ if ( evt . propertyName != this . transitionEndProperty && evt . elapsedTime != this . transitionEndTime ) {
126
+ return ;
127
+ }
128
+
129
+ this . transitionEndProperty = null ;
130
+ this . transitionEndTime = 0 ;
131
+
122
132
this . sideNavEl . classList . remove ( 'side-nav--animatable' ) ;
123
133
this . sideNavEl . removeEventListener ( 'transitionend' , this . onTransitionEnd ) ;
124
134
}
@@ -127,13 +137,22 @@ class SideNav {
127
137
this . sideNavEl . classList . add ( 'side-nav--animatable' ) ;
128
138
this . sideNavEl . classList . add ( 'side-nav--visible' ) ;
129
139
this . detabinator . inert = false ;
140
+
141
+ this . transitionEndProperty = 'transform' ;
142
+ // the duration of transition (make unique to distinguish transitions )
143
+ this . transitionEndTime = 0.33 ;
144
+
130
145
this . sideNavEl . addEventListener ( 'transitionend' , this . onTransitionEnd ) ;
131
146
}
132
147
133
148
hideSideNav ( ) {
134
149
this . sideNavEl . classList . add ( 'side-nav--animatable' ) ;
135
150
this . sideNavEl . classList . remove ( 'side-nav--visible' ) ;
136
151
this . detabinator . inert = true ;
152
+
153
+ this . transitionEndProperty = 'transform' ;
154
+ this . transitionEndTime = 0.13 ;
155
+
137
156
this . sideNavEl . addEventListener ( 'transitionend' , this . onTransitionEnd ) ;
138
157
}
139
158
}
0 commit comments