Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- mixin pattern
- 새 코드 받아오기
- Babel과 Webpack
- peerdependencies
- middleware pattern
- 진행기록
- 딥다이브
- package management
- 블로그 서비스 최적화
- 올림픽 통계 서비스 최적화
- 프로그래머스
- 모던 자바스크립트 Deep Dive
- js pattern
- 제너레이터와 async/await
- 브라우저의 렌더링 과정
- 자바스크립트
- unique identifiers
- 학습내용정리
- pr review
- DOM
- const
- 이미지 갤러리 최적화
- 스코프
- 프론트엔드 성능 최적화 가이드
- 자바스크립트 패턴
- 자바스크립트 딥다이브
- 커리어
- 이벤트
- js pattern
- version management
Archives
- Today
- Total
Dev Blog
About_Section1 구현 완료_20210531_Day7 본문
금일 진행 사항
- About Section1 구현 완료 - Pair review Carousel
Pair review Carousel
React-slick Library 를 사용하여 구현했다. 커스터마이징은 자유롭지 않지만 편리하다.
Firebase 에 리뷰 데이터를 저장하여 사용하는 방법도 있지만, 간단한 텍스트 데이터이기에 src - assets - reviews 의 자바스크립트 파일에 리뷰 배열을 만들어 데이터를 저장하고 불러오는 방식으로 구현했다.
Carousel.js 코드
import React, { Component } from "react";
import Slider from "react-slick";
import styled from "styled-components";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import wArrowLeft from "../assets/images/wArrowLeft.svg";
import wArrowRight from "../assets/images/wArrowRight.svg";
import gArrowLeft from "../assets/images/gArrowLeft.svg";
import gArrowRight from "../assets/images/gArrowRight.svg";
import theme from "../common/style/themes/default";
import reviews from "../assets/reviews/reviews";
function handleHover(element) {
const arrowId = element.target.id;
if (arrowId === "right") {
element.target.src = gArrowRight;
} else if (arrowId === "left") {
element.target.src = gArrowLeft;
}
}
function handleUnhover(element) {
const arrowId = element.target.id;
if (arrowId === "right") {
element.target.src = wArrowRight;
} else if (arrowId === "left") {
element.target.src = wArrowLeft;
}
}
function NextArrow(props) {
const { className, style, onClick } = props;
return (
<img
alt="Right"
id="right"
className={className}
style={{ ...style, display: "block" }}
onClick={onClick}
onMouseOver={handleHover}
onMouseOut={handleUnhover}
src={wArrowRight}
/>
);
}
function PrevArrow(props) {
const { className, style, onClick } = props;
return (
<img
alt="Left"
id="left"
className={className}
style={{ ...style, display: "block" }}
onClick={onClick}
onMouseOver={handleHover}
onMouseOut={handleUnhover}
src={wArrowLeft}
/>
);
}
class Carousel extends Component {
render() {
const settings = {
dots: true,
infinite: true,
speed: 300,
autoplay: true,
autoplaySpeed: 3500,
slidesToShow: 1,
slidesToScroll: 1,
border: "1px solid blue",
nextArrow: <NextArrow />,
prevArrow: <PrevArrow />,
};
return (
<Main>
<ReviewWrapper>
<StyledSlider {...settings}>
{reviews.map((ele) => (
<ReviewBox key={ele.name}>
<RContents>{ele.comment}</RContents>
<RWriter>{ele.name}</RWriter>
</ReviewBox>
))}
</StyledSlider>
</ReviewWrapper>
</Main>
);
}
}
여기에서 포인트는 아래 라이브러리를 불러오는 것. CSS 적용이 잘 되지 않아 조금 헤맸는데, 역시 공식 사이트를 참고하는 것이 빠르고 정확하다.
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
도움 받은 사이트
스크롤바 숨기기: https://gofnrk.tistory.com/48
SVG 아이콘 색상 수정: https://iconscout.com/icon-editor
Change image src on img:hover : https://stackoverflow.com/questions/18032220/css-change-image-src-on-imghover
React-Slick: https://react-slick.neostack.com/docs/example/simple-slider
React Slick 캐러셀 라이브러리 적용하기: https://www.jeje01.me/react/apply-carousel-using-library/
'Projects > JPortfolio' 카테고리의 다른 글
About_Section2 & Works 구현_20210602-03_Day9,10 (0) | 2021.06.04 |
---|---|
About_Section2 구현중_20210601_Day8 (0) | 2021.06.02 |
Nav, Home, About 구현_20210530_Day6 (0) | 2021.05.31 |
프로젝트 기획_컴포넌트 세분화 작업_20210528_Day5 (0) | 2021.05.29 |
프로젝트 기획_컴포넌트 세분화 작업_20210527_Day4 (0) | 2021.05.27 |
Comments