当サイトは、アフィリエイト広告を利用しています
Reactでhoverイベントを検知して処理を行う方法をまとめる。
今回はReactでhoverイベントを検知後、Emotionでstyleを変更するサンプル
を作成してみる。
色々調べてみたところ、ReactにはonHoverイベントハンドラーはないらしい。
だが変わりに
使うことでonHoverと同様の状態を実現できるようだ.
ReactとEmotionでhover時に色が変わるサンプルを実装する
/** @jsxImportSource @emotion/react */import { css } from "@emotion/react";import { useState } from "react";import "./styles.css";export default function App() {// useStateでcoloerを管理const [color, setColor] = useState("black");return (<divcss={[container]}className="App"onMouseEnter={() => setColor("red")}onMouseLeave={() => setColor("black")}><h1 css={[style(color)]}>Hello CodeSandbox</h1><h2 css={[css`text-align:center`]}>react + emotion</h2></div>);}const container = () => [css`border: 1px solid;`];const style = (color) => [css`text-align:center;color: ${color};transition-property: all;transition-duration: 0.3s;transition-delay: 0s;transition-timing-function: ease-in;`];
下記で動作確認できます!
ReactでのEmotionの詳しい使い方について下記記事でまとめています!
またtransition(色が変わるアニメーション)については下記で紹介してます
下記を参考にさせて頂きました。