単純なアニメーションエキスパンダ
12608 ワード
こんにちは!👋 😊
今日、私は反応でアニメーションエキスパンダーを作成することについて考えていました、そして、私は以下の解決を思いつきました.🔽
開始する前に、私たちは非常に私たちのウェブサイト上のソリューションの実行可能な例をチェックアウトすることをお勧めします:
How to create simple animated expander in React
この短いポストの効果
以下の例では、果物を表示する単純なエキスパンダーを作りました🍉 野菜🍅 Clickイベントのリスト.私は、機能的なコンポーネントの使用とフックを反応させる現代のアプローチを使いました.この場合は
実際例
あなたがそれを好きかどうかコメントセクションではわからない!😊
あなたが問題を解決するか、誰も反応またはJavascript話題に関連して答えることができないという質問をするならば、あるいは、あなたはメンタリングが我々に書いているのを探していますdirask.com -> Questions
今日、私は反応でアニメーションエキスパンダーを作成することについて考えていました、そして、私は以下の解決を思いつきました.🔽
開始する前に、私たちは非常に私たちのウェブサイト上のソリューションの実行可能な例をチェックアウトすることをお勧めします:
How to create simple animated expander in React
この短いポストの効果
以下の例では、果物を表示する単純なエキスパンダーを作りました🍉 野菜🍅 Clickイベントのリスト.私は、機能的なコンポーネントの使用とフックを反応させる現代のアプローチを使いました.この場合は
useState
フックは、私のエキスパンダーの状態を保存します.🔺🔻実際例
import React from 'react';
const expanderStyle = {
margin: '6px 0',
padding: '2px',
border: '1px solid #85C1E9'
};
const headerStyle = {
display: 'flex',
cursor: 'pointer'
};
const titleStyle = {
padding: '3px',
flex: 'none'
};
const spacerStyle = {
flex: '1'
};
const iconStyle = {
padding: '3px',
flex: 'none'
};
const contentStyle = {
overflow: 'hidden',
transition: 'all 0.3s'
};
const contentExpandedStyle = {
...contentStyle,
padding: '4px 0',
border: '1px solid #85C1E9',
height: 'auto',
filter: 'opacity(1)'
};
const contentCollapsedStyle = {
...contentStyle,
padding: '0 0',
border: '1px solid transparent',
height: '0',
filter: 'opacity(0)'
};
const Expander = ({title, children}) => {
const [expanded, setExpanded] = React.useState(false);
const handleHeaderClick = () => {
setExpanded(expanded => !expanded);
};
return (
<div style={expanderStyle}>
<div style={headerStyle} onClick={handleHeaderClick}>
<div style={titleStyle}>{title}</div>
<div style={spacerStyle} />
<div style={iconStyle}>{expanded ? '🔺' : '🔻'}</div>
</div>
<div style={expanded ? contentExpandedStyle : contentCollapsedStyle}>
{children}
</div>
</div>
);
};
// Usage example:
const App = () => {
return (
<div style={{height: '260px'}}>
<Expander title="🍏🍌🍊 Fruits">
<ul>
<li>🍏 Apple</li>
<li>🍌 Banana</li>
<li>🍊 Orange</li>
</ul>
</Expander>
<Expander title="🥕🥒🍅 Vegetables">
<ul>
<li>🥕 Carrot</li>
<li>🥒 Cucumber</li>
<li>🍅 Tomato</li>
</ul>
</Expander>
</div >
);
};
export default App;
この例を実行できますhere あなたがそれを好きかどうかコメントセクションではわからない!😊
私たちに手紙を書く!
あなたが問題を解決するか、誰も反応またはJavascript話題に関連して答えることができないという質問をするならば、あるいは、あなたはメンタリングが我々に書いているのを探していますdirask.com -> Questions
Reference
この問題について(単純なアニメーションエキスパンダ), 我々は、より多くの情報をここで見つけました https://dev.to/diraskreact/react-create-simple-animated-expander-3kjpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol