const textLoop = keyframes`
0% {
transform: translate3d(40%, 0, 0);
}
100% {
transform: translate3d(-90%, 0, 0);
}
`;
const FlowText = styled.div`
display: flex;
flex: 0 0 auto;
white-space: nowrap;
/* margin-left: 90px; */
`;
const Marquee = ({title}) => {
return (
<FlowContainer>
<FlowText>
<FlowWrap>{ title }</FlowWrap>
</FlowText>
</FlowContainer>
);
};
export default Marquee;
텍스트가 시작부터 흘러가서 앞글자가 잘 보이지 않았다. 그래서 처음에 생각했던 방법은 아예 텍스트를 넘겨줄 때 앞에 스페이스를 주고 join해서 넘겨줄까 했지만 styled-components를 사용할 때는 문자열 내부에서 공백을 추가하는 것이 효과가 없다고 한다. 때문에 다음으로 생각했던 방법은 margin-left를 주는 것. 이 역시 잘 적용이 되지 않았다. 하지만 다른 방법을 발견했다.
const textLoop = keyframes`
0% {
transform: translate3d(40%, 0, 0);
}
100% {
transform: translate3d(-90%, 0, 0);
}
`;
여기서 transform의 첫번째 인자는 어디까지 흘러갈지 정해주는 인자이다. 때문에 40%로 설정하면 그 너비의 40%부터 텍스트가 시작하게 된다.
'웹 > React' 카테고리의 다른 글
[React] 검색텍스트 입력 후 버튼 누르면 검색되게 하기, react에서 입력값 가져오기 (0) | 2023.09.21 |
---|---|
[React] useState를 이용해 리스트에 값 추가하기 (0) | 2023.09.18 |
[React] useEffect set state가 바로 적용 안 되는 현상 (0) | 2023.09.15 |
[React/에러] TypeError: Cannot read properties of undefined (reading 'map') (0) | 2023.09.11 |
[React] 페이지 버튼 클릭 후 css 효과 유지하기(현재 페이지 표시) (0) | 2023.09.08 |
댓글