티스토리 뷰
css, scss의 사용을 위해 항상 다른 파일을 만들어야 하거나
styled component처럼 새 파일이나 마찬가지인 코드를 작성해야 하거나
그렇다고 부트스트랩처럼 자유도가 떨어지는 것 도 아닌
테일윈드를 요즘 애용중이다.
테일윈드로 아래처럼 연속으로 이어지는 것 같은 x축 슬라이드를 구현해보고자 한다.
1. tailwind.config.js
테일윈드의 모든 추가 속성은 이곳에서 적용시킨다.
키 프레임과 애니메이션은 헷갈리지 않게 아래의 루트에 넣어주자.
module.exports = {
theme: {
extend: {
keyframes: {
키프레임 적는 곳
},
animation: {
애니메이션 적는 곳
}
},
}
}
참고로
본인의 버전은 아래와 같다.
{
"dependencies": {
"@craco/craco": "^6.3.0",
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3",
"web-vitals": "^1.0.1"
},
"devDependencies": {
"autoprefixer": "^9.8.7",
"postcss": "^7.0.38",
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.16"
}
}
무튼, 이렇게 세팅을 해 두고 slider라는 키프레임과 애니메이션을 만들어주자.
처음에 헷갈렸던 것이 버전의 차이인지 모르겠는데
어떤 블로그는 animation과 keyframes 이름을 큰따옴표로 묶었는데("slider") 나에게 그것은 적용되지 않았다.
module.exports = {
theme: {
extend: {
keyframes: {
slider: {
'0%': {
transform: 'translateX(0px)'
},
'100%': {
transform: 'translateX(-1400px)'
}
},
},
animation: {
slider: 'slider 5s linear infinite'
}
},
}
}
키프레임과 애니메이션 이름은 같아야 하고, pure css에서 적용했던 것 처럼 slider에게 animation을 적용시켜주자.
조금 대충 설명하는 것 일지 모르겠지만...
translateX(가로) 100%에서의 픽셀값은 자신의 프로젝트에 맞게 이어지는 착시를 불러오는 숫자 까지 맞추면 된다.
중요한건 animation에 ease를 넣으면 안되고 linear여야 한다.
2. 애니메이션 적용
테일윈드는 이렇게 애니메이션을 만들면 자기 맘대로 변수를 'animate-지은이름' 로 생성해버린다.
때문에, 내 프로젝트 기준 아래와 같이 적용시키면 된다.
<div className="flex flex-row mb-10 absolute animate-slider">
<!-- 이미지들 리스트 -->
</div>
config에서 slider라고 지었으니 위와 같이 적어주자.
구현 개념은 relative, overflow-hidden > absolute, animate-slider > 이미지들 순으로 태그가 생성되게 하면 된다.
이미지들이 이어지는 듯 하려면 같은 이미지를 두 번 반복해 붙여넣기도 해야한다.
<div className="mainSkill bg-indigo-600 pb-16 relative overflow-hidden">
<div className="flex flex-row mb-10 absolute animate-slider">
<img className="w-100 h-full mx-10" src={html} alt="html logo" />
<img className="w-110 h-full mr-10" src={css} alt="css logo" />
<img className="w-100 h-full mr-10" src={javascript} alt="javascript logo" />
<img className="w-120 h-full mr-10" src={react} alt="react logo" />
<img className="w-120 h-full mr-10" src={vue} alt="vue logo" />
<img className="w-120 h-full mr-10" src={nuxt} alt="nuxt logo" />
<img className="w-120 h-full mr-10" src={scss} alt="scss logo" />
<img className="w-120 h-full mr-10" src={styled} alt="styled logo" />
<img className="w-130 h-full mr-10" src={tailwind} alt="tailwind logo" />
<!-- 이미지 묶음 한번 더 반복 -->
<img className="w-100 h-full mr-10" src={html} alt="html logo" />
<img className="w-110 h-full mr-10" src={css} alt="css logo" />
<img className="w-100 h-full mr-10" src={javascript} alt="javascript logo" />
<img className="w-120 h-full mr-10" src={react} alt="react logo" />
<img className="w-120 h-full mr-10" src={vue} alt="vue logo" />
<img className="w-120 h-full mr-10" src={nuxt} alt="nuxt logo" />
<img className="w-120 h-full mr-10" src={scss} alt="scss logo" />
<img className="w-120 h-full mr-10" src={styled} alt="styled logo" />
<img className="w-130 h-full mr-10" src={tailwind} alt="tailwind logo" />
</div>
</div>
깔끔한 코드가 아니라 부끄럽지만... 이렇게 구현하면 무한인 것 같은 슬라이더가 구현된다.
테일윈드에서 커스텀 애니메이션을 만드는 것에 조금이라도 도움이 되길 바란다!
'Basic_Studies > CSS' 카테고리의 다른 글
[CSS] 화면보호기처럼 돌아다니는 글래스모피즘 구현 (0) | 2022.07.25 |
---|---|
[CSS] 그라데이션(그라디언트) 줄 있는 것 처럼 보이는 문제 해결 (2) | 2022.07.14 |
[CSS] 글씨에 그라데이션 적용하기 (2) | 2021.01.31 |
[CSS] 마스크 느낌 주기 (0) | 2021.01.18 |
[CSS] 반응형 단위 정리(vh, em, rem 등) (0) | 2020.08.27 |
- Total
- Today
- Yesterday
- 카페음료테스트
- 움직이는 글래스모피즘
- 파이썬 정렬
- react router
- NextJS
- 10989 파이썬
- 화이팅
- 파이썬 크롤링
- nextjs 스크롤
- 백준 10989 파이썬
- nuxt 공식문서 한글
- Til
- 글래스모피즘 구현
- next.js 리다이렉트
- getserversideprops redirect
- vscode venv
- 리액트 컴포넌트
- nuxt 공식문서
- 자바스크립트
- nextjs 파라미터 넘기기
- css 글래스모피즘
- 파이썬 flask
- 리액트 스크롤
- css marquee
- dvd 효과
- 리액트
- 리액트 라우터
- 리액트 파라미터 넘기기
- bs4 크롤링
- 글래스모피즘 애니메이션 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |