51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

如何向模态框中添加动画(ReactJS)

英文:

How to add animation to Modal (ReactJS)

问题 {#heading}

我有以下的ReactJS模态对话框,并且通过点击按钮来生成它,将isOpen设置为true。如何为它添加动画效果?

如需进一步的帮助,请提出具体的问题。 英文:

I have the following Modal in ReactJS

const isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {
	if (!element) return;
	const r = element.getBoundingClientRect();
let isInside =
	e.clientX > r.left &&
	e.clientX < r.right &&
	e.clientY > r.top &&
	e.clientY < r.bottom;

return isInside;

};

export const Modal = ({ isOpen, children, onOutsideClick }: Props) => { const ref = useRef<HTMLDialogElement>(null);

useEffect(() => {
	if (isOpen) {
		ref.current?.close();
		ref.current?.showModal();
		document.body.classList.add("modal-open"); // prevent bg scroll
	} else {
		ref.current?.close();
		document.body.classList.remove("modal-open");
	}
}, [isOpen]);

const handleOutsideClick = (e: any) => { let isHidden = e.target.hidden; if (!isHidden && !isClickInsideRectangle(e, ref.current!)) { onOutsideClick && onOutsideClick(); } }; return ( <div className="mw-modal" onClick={handleOutsideClick}> <dialog className="mw-modal--dialog" ref={ref}> {children} </dialog> </div> );

};


and I'm generating it by clicking button which sets isOpen to true. How can I animate it?

答案1 {#1}

得分: 1

您可以制作一些漂亮的 CSS 动画。这里有一个简单且不太复杂的示例:

将这些类添加到您的 CSS 文件中:

.mw-modal--dialog {
  opacity: 0;
  transform: translateY(-10%);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.mw-modal--dialog.show { opacity: 1; transform: translateY(0); } </code></pre> <p>然后,您需要一些 JavaScript 来在触发时添加和移除 CSS 类。将以下代码添加到您的 Modal 组件中:</p> <pre><code>export const Modal = ({ isOpen, children, onOutsideClick }: Props) =&gt; { const ref = useRef&lt;HTMLDialogElement&gt;(null);

useEffect(() =&amp;gt; {
    if (isOpen) {
        ref.current?.close();
        ref.current?.showModal();
        ref.current?.classList.add(&amp;quot;show&amp;quot;);     // 添加 show 类
        document.body.classList.add(&amp;quot;modal-open&amp;quot;);
    } else {
        ref.current?.classList.remove(&amp;quot;show&amp;quot;);     // 移除 show 类
        ref.current?.close();
        document.body.classList.remove(&amp;quot;modal-open&amp;quot;);
    }
}, [isOpen]);

const handleOutsideClick = (e: any) =&amp;gt; { let isHidden = e.target.hidden; if (!isHidden &amp;amp;&amp;amp; !isClickInsideRectangle(e, ref.current!)) { onOutsideClick &amp;amp;&amp;amp; onOutsideClick(); } }; return ( &amp;lt;div className=&amp;quot;mw-modal&amp;quot; onClick={handleOutsideClick}&amp;gt; &amp;lt;dialog className=&amp;quot;mw-modal--dialog&amp;quot; ref={ref}&amp;gt; {children} &amp;lt;/dialog&amp;gt; &amp;lt;/div&amp;gt; );

};

&lt;details&gt; &lt;summary&gt;英文:&lt;/summary&gt;

You can do some neat css animations. Here is something easy and not too complex:

Add these classes to your css file

.mw-modal--dialog {
  opacity: 0;
  transform: translateY(-10%);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.mw-modal--dialog.show { opacity: 1; transform: translateY(0); } &amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt; &amp;lt;p&amp;gt;Then you'll need some JS to add and remove the css classes on trigger. Add this to your Modal component&amp;lt;/p&amp;gt; &amp;lt;pre tabindex=&amp;quot;0&amp;quot; style=&amp;quot;color:#f8f8f2;background-color:#272822;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;export&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;const&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;Modal&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt; ({ &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isOpen&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;children&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;onOutsideClick&amp;lt;/span&amp;gt; }&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;Props&amp;lt;/span&amp;gt;) &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;; { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;const&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;useRef&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;lt&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;HTMLDialogElement&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;;(&amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;null&amp;lt;/span&amp;gt;); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;useEffect&amp;lt;/span&amp;gt;(() &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;; { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; (&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isOpen&amp;lt;/span&amp;gt;) { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;close&amp;lt;/span&amp;gt;(); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;showModal&amp;lt;/span&amp;gt;(); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;classList&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;add&amp;lt;/span&amp;gt;(&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;show&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;); &amp;lt;span style=&amp;quot;color:#75715e&amp;quot;&amp;gt;// Add show class &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span style=&amp;quot;color:#75715e&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; document.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;body&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;classList&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;add&amp;lt;/span&amp;gt;(&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;modal&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;open&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; } &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;else&amp;lt;/span&amp;gt; { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;classList&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;remove&amp;lt;/span&amp;gt;(&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;show&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;); &amp;lt;span style=&amp;quot;color:#75715e&amp;quot;&amp;gt;// Remove show class &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;&amp;lt;span style=&amp;quot;color:#75715e&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;close&amp;lt;/span&amp;gt;(); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; document.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;body&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;classList&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;remove&amp;lt;/span&amp;gt;(&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;modal&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;open&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; } &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; }, [&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isOpen&amp;lt;/span&amp;gt;]); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;const&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;handleOutsideClick&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt; (&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;any&amp;lt;/span&amp;gt;) &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;; { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;let&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isHidden&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;target&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;hidden&amp;lt;/span&amp;gt;; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;if&amp;lt;/span&amp;gt; (&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;!&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isHidden&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;amp&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;amp&amp;lt;/span&amp;gt;; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;!&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;isClickInsideRectangle&amp;lt;/span&amp;gt;(&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;, &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;.&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;current&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;!&amp;lt;/span&amp;gt;)) { &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;onOutsideClick&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;amp&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;amp&amp;lt;/span&amp;gt;; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;onOutsideClick&amp;lt;/span&amp;gt;(); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; } &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; }; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#66d9ef&amp;quot;&amp;gt;return&amp;lt;/span&amp;gt; ( &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;lt&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;div&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;className&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;mw&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;modal&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;onClick&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;{&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;handleOutsideClick&amp;lt;/span&amp;gt;}&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;lt&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;dialog&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;className&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;mw&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;modal&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;--&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;dialog&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;quot&amp;lt;/span&amp;gt;; &amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;=&amp;lt;/span&amp;gt;{&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;ref&amp;lt;/span&amp;gt;}&amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;gt&amp;lt;/span&amp;gt;; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; {&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;children&amp;lt;/span&amp;gt;} &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;lt&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#960050;background-color:#1e0010&amp;quot;&amp;gt;/dialog&amp;amp;amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; &amp;lt;span style=&amp;quot;color:#f92672&amp;quot;&amp;gt;&amp;amp;amp;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#a6e22e&amp;quot;&amp;gt;lt&amp;lt;/span&amp;gt;;&amp;lt;span style=&amp;quot;color:#960050;background-color:#1e0010&amp;quot;&amp;gt;/div&amp;amp;amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt; ); &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;display:flex;&amp;quot;&amp;gt;&amp;lt;span&amp;gt;}; &amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt; &amp;lt;p&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;/div&amp;gt;

</code></pre> <p></code></pre></p>

赞(2)
未经允许不得转载:工具盒子 » 如何向模态框中添加动画(ReactJS)