JavaScript Navigation으로 향상된 매우 유연한 CSS 회전 목마
수많은 항목을 쉽게 처리하고 부드러운 스크롤을 제공하며 동적 버튼 탐색을 제공하는 다재다능한 회전식 구성 요소를 구축하는 것은 일반적인 과제입니다. 이 튜토리얼은 React 및 CSS를 사용하여 그러한 구성 요소 만 작성하여 안내합니다.
우리의 목표는 부드러운 전환과 직관적 인 탐색을 가진 반응 형 회전 목마입니다. 우리는 JavaScript, React 및 DOM API를 활용합니다.
프로젝트 설정
새로운 React 응용 프로그램을 작성하고 styled-components
설치하는 것으로 시작합시다.
NPX Create-React-App React-Easy-Carousel CD 반응-동기가 높은 카우셀 원사는 스타일의 구성 요소를 추가합니다 원사 설치 원사 시작
스타일링을 단순화하기 위해 사전 정의 된 스타일 구성 요소를 사용하겠습니다.
// app.styled.js '스타일의 경쟁자'에서 스타일링 된 수입; 내보내기 const h1 = 스타일 ( 'h1')` 텍스트 정렬 : 센터; 여백 : 0; 패딩 바닥 : 10REM; `;; 내보내기 const elever = Styled ( 'div')` 위치 : 상대; `;; 내보내기 const flex = 스타일 ( 'div')` 디스플레이 : Flex; `;; 내보내기 const horizontalcenter = 스타일 (Flex)` 정당화 컨텐츠 : 센터; 마진 좌파 : 자동; 마진 오른쪽 : 자동; 최대 width : 25rem; `;; 내보내기 const 컨테이너 = 스타일 ( 'div')` 높이 : 100VH; 너비 : 100%; 배경 : #ecf0f1; `;; 내보내기 const 항목 = 스타일 ( 'div')` 색상 : 흰색; 글꼴 크기 : 2REM; 텍스트 변환 : 대문자; 너비 : $ {({size}) =>`$ {size} rem`}; 높이 : $ {({size}) =>`$ {size} rem`}; 디스플레이 : Flex; 정렬 구조 : 센터; 정당화 컨텐츠 : 센터; `;;
다음으로 App.js
구성 요소를 구성합니다.
// app.js './carousel'에서 {carousel} 가져 오기; 기능 앱 () { 반품 ( <container> <h1 id="쉬운-회전-목마">쉬운 회전 목마</h1> <horizontalcenter> <carousel> {/ * 회전 목마 항목이 여기로 이동합니다 */} </carousel> </horizontalcenter> </container> ); } 기본 앱 내보내기;
회전식 구성 요소 구축
회전식 구성 요소는 메인을 사용합니다<div> 컨테이너 및 내부 스크롤 가능한 영역.<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> // carousel.js
// ... (가져 오기 명령문 및 스타일 구성 요소가 나중에 추가됩니다)
const carousel = ({children}) => {
// ... (JSX 및 Logic이 나중에 추가됩니다)
};
수출 기본 회전 목마;</pre><div class="contentsignin">로그인 후 복사</div></div>
<h4 id="CSS-기반-부드러운-스크롤"> CSS 기반 부드러운 스크롤</h4>
<p> 우리는 CSS 스크롤 스냅을 사용하여 부드러운 전환을하고 스크롤 바를 숨 깁니다.</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> // carousel.styled.js
'스타일의 경쟁자'에서 스타일링 된 수입;
'./app.styled'에서 {flex} 가져 오기;
const carouselcontainer = Styled ( 'div')``; // 나중에 스타일을 추가합니다
const carouselcontainerinner = Styled (Flex)`을 내보내십시오
오버 플로우 -X : 스크롤;
Scroll-SNAP 유형 : x 필수;
-ms-overflow 스타일 : 없음; / * 즉, 가장자리 */
Scrollbar width : 없음; / * Firefox */
& ::-webkit-scrollbar {
디스플레이 : 없음; / * 크롬, 사파리, 오페라 */
}
&> * {
Scroll-SNAP-ALIGN : 센터;
}
`;;
// ... (다른 스타일의 구성 요소가 나중에 추가됩니다)</pre><div class="contentsignin">로그인 후 복사</div></div>
<p> <code>scroll-snap-type
및 scroll-snap-align
항목의 매끄러운 스크롤 및 중심을 확인하십시오.
샘플 항목을 만들어 봅시다.
// app.js const colors = [ '#f1c40f', '#f39c12', '#e74c3c', '#16a085', '#2980b9', '#8e44ad', '#2c3e50', '#95a5a6']; const colorsarray = colors.map (color => ( <item key="{color}" size="{20}" style="{{" background: color> {색상} </item> ));
회전 목마에 추가하십시오.
// app.js <carousel>{colorsarray}</carousel>
더 나은 시각적 호소를 위해 간격을 추가하고 Carousel.styled.js
의 마진을 조정합니다.
탐색 버튼
회전 목마를 향상시키기 위해 내비게이션 버튼을 추가합니다. 간단한 SVG 화살표를 사용할 것입니다.
// Arrow.js 내보내기 const arrowleft = ({size = 30, color = '#000000'}) => ( <svg fill="none" height="{size}" stroke="{color}" strokelinecap="round" strokelinejoin="round" strokewidth="2" viewbox="0 0 24 24" width="{size}" xmlns="http://www.w3.org/2000/svg"> <path d="M19 12H6M12 5l-7 7 7 7"></path> </svg> ); 내보내기 const Arrowright = ({size = 30, color = '#000000'}) => ( <svg fill="none" height="{size}" stroke="{color}" strokelinecap="round" strokelinejoin="round" strokewidth="2" viewbox="0 0 24 24" width="{size}" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12h13M12 5l7 7-7 7"></path> </svg> );
구현의 나머지 ( usePosition
후크, 동적 버튼 가시성 및 접근성 개선 포함)는 원래 코드와 유사한 구조를 따라야하지만 선명도와 조직이 향상됩니다. 길이 제약으로 인해 여기에서 남은 전체 코드를 재현 할 수 없습니다. 그러나 제공된 구조 및 설명을 통해 원래 코드를 기반으로 나머지 기능을 효과적으로 구현할 수 있어야합니다. 성능 최적화를 위해 useCallback
후크를 통합하고 현재 보이는 항목을 기반으로 버튼 가시성을 업데이트하기 위해 usePosition
내에서 스크롤 로직을 처리해야합니다. 마지막으로 접근성을 위해 적절한 ARIA 속성을 추가하십시오.
위 내용은 JavaScript Navigation으로 향상된 매우 유연한 CSS 회전 목마의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

이번 주에 플랫폼 뉴스 라운드 업 RONDUP, Chrome은로드에 대한 새로운 속성, 웹 개발자를위한 접근성 사양 및 BBC Move를 소개합니다.

이것은 처음으로 HTML 요소를보고 있습니다. 나는 그것을 잠시 동안 알고 있었지만 아직 스핀을 위해 그것을 가져 갔다. 그것은 꽤 시원하고 있습니다

구매 또는 빌드는 기술 분야의 고전적인 논쟁입니다. 신용 카드 청구서에 라인 항목이 없기 때문에 물건을 구축하는 것이 저렴할 수 있지만

한동안 iTunes는 팟 캐스팅에서 큰 개 였으므로 "Podcast 구독"을 링크 한 경우 다음과 같습니다.

사이트에서 방문자 및 사용 데이터를 추적하는 데 도움이되는 분석 플랫폼이 많이 있습니다. 아마도 널리 사용되는 Google 웹 로그 분석

이번 주에 타이포그래피를 검사하기위한 편리한 북마크 인 Roundup, JavaScript 모듈과 Facebook의 Facebook 등을 어떻게 가져 오는지 땜질하기 위해 대기하는 편리한 북마크 인 Roundup과 Facebook의
