export const TabSliderPageStyled = styled.div<TabSliderPageStyledProps>`
display: flex;
gap: 20px;
min-width: 500px; /* 슬라이더가 스크롤될 수 있도록 충분한 너비 설정 */
overflow: auto;
`;
Hook 생성
해당 기능을 좀더 범용적으로 씌일수 있도록 훅을 만들어 보겠습니다. 그리고 scrollTo말고 scrollIntoView으로 변경했습니다. scrollIntoView수평과 수직을 변경할수 있는 옵션을 제공해주고 있어서 유용합니다.!!😃 😃
import { useRef, useState } from 'react';
export const useSlider = (initialIndex: number = 0) => {
const [activeIndex, setActiveIndex] = useState(initialIndex);
const sliderRef = useRef<HTMLDivElement>(null);
const handleClick = (index: number) => {
setActiveIndex(index);
const slider = sliderRef.current;
if (slider) {
const item = slider.children[index] as HTMLElement;
item.scrollIntoView({
behavior: 'smooth',
block: 'nearest', // 수직 방향 정렬
inline: 'center', // 수평 방향 중앙 정렬
});
}
};
return {
activeIndex,
sliderRef,
handleClick,
};
};