The Book I Read #7

Lee·2022년 10월 2일
0

Toyproject

목록 보기
7/7
post-thumbnail

간단하게 스타일의 변화를 주려고 한다. 일단 최초 메인 화면 시 나타나는 data의 개수를 줄이고 후에 버튼을 클릭함으로 나타나게끔 구현할 예정이다.

<div className="book-container">
        <h1 className="book-title">
          <img src="https://velog.velcdn.com/images/minhyepark-dev/post/ecfb987e-f0cb-43c3-86f9-bffa58e9ba1c/blog_book2.jpg" />
        </h1>
        <div className="books">
          {books.slice(0, more).map((book) => (
            <div className="book" key={book.id}>
              {book.cover && <img src={book.cover} alt="" />}
              <h2>{book.title}</h2>
              <p>{book.desc.slice(0, 50)}...</p>
              <span>{book.price}</span>
              <div className="btn-wrap">
                <button className="duBtn" onClick={() => handleDelete(book.id)}>
                  🗑 삭제
                </button>
                <button className="duBtn">
                  <Link className="link" to={`/update/${book.id}`}>
                    🖋 수정
                  </Link>
                </button>
              </div>
            </div>
          ))}
        </div>
        <div className="addmore-wrap">
          <span
            className={more < books.length ? `moreBtn` : `noBtn`}
            onClick={() => setMore(more + 2)}
          >
            👇
          </span>
          <button className="addBtn">
            <Link to="/add" className="link">
              🔥 독후감 쓰기
            </Link>
          </button>
        </div>
      </div>

최초 데이터를 가져와 slice를 통하여 more값만큼 보여지게 한 후, 증가하는 값에 따라 class명을 변경하여 스타일링 하였다.

.moreBtn {
      position: absolute;
      bottom: 6%;
      right: 4%;
      color: var(--btn-font-color);
      font-size: 1.5rem;
      cursor: pointer;

      &:hover {
        bottom: 0;
        transition: all 0.2s ease;
      }
    }
    .noBtn {
      display: none;
    }

모바일 버전과 데스크탑 버전

profile
Lee

0개의 댓글