_/Velog

[React] useState 이용하여 JS로 :hover 구현하기

선달 2023. 12. 23. 01:19
반응형

호버링이란..

말그대로 마우스를 특정 요소 위에 올렸을 때 해당 요소가 바뀌게 해주는 그런 기능? 이다

const Barogagi = styled.div`
  &:hover {
      background-color: rgb(0, 0, 0, 0.5);
      color: rgb(255, 255, 255, 100);
  }
`;

 

이런식으로 styled-component나 css를 이용하여
호버링 기능을 쉽게 구현할 수 있지만

이제.. 이걸로는 외부의 컴포넌트를 호버할때마다
전혀 다른 컴포넌트에게 영향을 끼치게 만드는게 안되어서 속상했다

 

useState 를 이용한 hover 기능 구현

그러다가 알게된 onMouseOveronMouseOut..


그리하여 리액트의 useState()를 이용하여 메인함수 내부에 호버링을 구현했다!

이름하야 자바스크립트로 호버링하기

 

const Ad = () => {
  const [isHovering, setIsHovering] = useState(0);

  return (
    <Wrapper
      onMouseOver={() => setIsHovering(1)}
      onMouseOut={() => setIsHovering(0)}
    >
      <ImageArea>
        <Thumbnail src="assets_header/thumbnail.png" />
        <Icon src="assets_header/clickIcon.png" />
        {isHovering ? (
          <Barogagi>
            <p className="text">자세히 알아보기</p>
          </Barogagi>
        ) : (
          ""
        )}
      </ImageArea>
...

 

여기서 <Wrapper> 로 감싸진 컴포넌트 어디에 마우스를 올리든 그 안에 있는 <Barogagi> 컴포넌트가 나타나게 바꿀수 있다.


반응형