0
私のコンポーネントの動的スタイリングにはstyled-components
が使用されていますが、私が望むように動作させることはできません。スタイルを変更したコンポーネントは、再レンダリング時にトランジションエフェクトを適用しませんか?
私は、プログラマティックでダイナミックにフォーカスされたボタンにease-in-out
エフェクトを追加しようとしています。
あなたはtransition
プロパティは、任意の有効になりませんが、スタイリングが適用されて見ることができるように。これを達成する方法はありますか?
情報メモと同様に、コンポーネント(ボタン)は3秒ごとに再表示され、トグルすることができますか?もしそうなら、これを回避するには?
このコードスニペットに基づいて一見上のコンポーネント
class LanguageButton extends PureComponent {
render() {
const { children, theme, isFocussed, ...otherProps } = this.props;
const Button = styled.div`
border: 1px solid ${theme};
margin-top: 10px;
margin-bottom: 10px;
background-color: transparent;
text-align: center;
padding-top: 25px;
padding-bottom: 25px;
min-height: 0;
transition: all 0.1s ease-in-out;
:hover {
background-color: ${theme};
transition: all 0.1s ease-in-out;
}
:active {
background-color: ${theme};
}
&.isFocussed {
transition: all 0.1s ease-in-out;
background-color: #ebebeb;
:hover {
background-color: ${theme};
transition: all 0.1s ease-in-out;
}
:active {
background-color: ${theme};
}
}
`;
return (
<Button
className={classnames("BUTTON BUTTON--50 GM--noselect", { isFocussed })}
{...otherProps}
>
{children}
</Button>
);
}
}
見ていただきありがとうございますが、どうすればこれを行うことができますか?私は本当にクラスを追加/削除する以外の手がかりがありません:/ – NealVDV
それはあなたが達成しようとしているものによって異なります。あなたは、ボタンのホバー上で、背景色を 'isFocused'クラスのホバー上で変更しています。あなたはあまりにも多くの衝突が起こっています。つまり、あなたのコードは' isFocused'クラスのスタイルを適用するだけです もう一つの注意点は、どこにでも 'transition'クラスを追加する必要がないということです。ボタン自体のように、あなたが望むルート要素に 'transition'を置いてください。 ちょうど 'isFocused'ピースなしでこの同じコードを実行して、ホバー上で動作する遷移を取得してください。 –
はい、私はその問題を解決できると考えていたので、確かにそれはすべての場所にあります。しかし、ホバリングはうまく動いている、私は単純に反応が再レンダリングされているので、移行が起こっていないと思う:/任意のアイデア? (あなたが言ったことをすべて実装した後でもまだ動作していません) – NealVDV