@@ -97,19 +97,20 @@ const COffcanvas = defineComponent({
9797 } , 1 )
9898 }
9999 const handleAfterEnter = ( ) => {
100- window . addEventListener ( 'click' , handleClickOutside )
100+ window . addEventListener ( 'mousedown' , handleMouseDown )
101+ // window.addEventListener('click', handleClickOutside)
101102 window . addEventListener ( 'keyup' , handleKeyUp )
102103 }
103104 const handleLeave = ( el : RendererElement , done : ( ) => void ) => {
104105 el . addEventListener ( 'transitionend' , ( ) => {
105106 done ( )
106107 } )
108+ window . removeEventListener ( 'mousedown' , handleMouseDown )
109+ window . removeEventListener ( 'keyup' , handleKeyUp )
107110 el . classList . remove ( 'show' )
108111 }
109112 const handleAfterLeave = ( el : RendererElement ) => {
110113 el . style . visibility = 'hidden'
111- window . removeEventListener ( 'click' , handleClickOutside )
112- window . removeEventListener ( 'keyup' , handleKeyUp )
113114 }
114115
115116 const handleDismiss = ( ) => {
@@ -124,7 +125,12 @@ const COffcanvas = defineComponent({
124125 }
125126 }
126127 }
127- const handleClickOutside = ( event : Event ) => {
128+
129+ const handleMouseDown = ( event : Event ) => {
130+ window . addEventListener ( 'mouseup' , ( ) => handleMouseUp ( event ) , { once : true } )
131+ }
132+
133+ const handleMouseUp = ( event : Event ) => {
128134 if ( offcanvasRef . value && ! offcanvasRef . value . contains ( event . target as HTMLElement ) ) {
129135 props . backdrop && handleDismiss ( )
130136 }
@@ -134,6 +140,7 @@ const COffcanvas = defineComponent({
134140 h (
135141 Transition ,
136142 {
143+ css : false ,
137144 onEnter : ( el , done ) => handleEnter ( el , done ) ,
138145 onAfterEnter : ( ) => handleAfterEnter ( ) ,
139146 onLeave : ( el , done ) => handleLeave ( el , done ) ,
0 commit comments