CSS 3D 변환 및 JavaScript를 사용하여 대화식 3D 회전 회전 목마를 구축하여 웹 이미지 또는 컨텐츠의 동적 디스플레이를 향상시킵니다. 이 기사에서는이 구성 요소를 만드는 방법을 단계별로 안내합니다.
이 주제를 처음 연구했을 때 3D 회전 목마가 필요하지 않았지만 특정 구현 세부 사항에 더 많은 관심을 기울였습니다. 핵심 기술은 물론 CSS 변환 모듈 레벨 1의 핵심 기술이지만 프로세스에서 CSS, SASS 및 클라이언트 JavaScript의 모든 측면을 포함하는 많은 다른 프론트 엔드 개발 기술이 적용됩니다. 이 코드 펜은 다양한 버전의 구성 요소를 보여 주며이를 빌드하는 방법을 보여 드리겠습니다.
CSS 3D 변환의 설정을 설명하기 위해 구성 요소의 순수한 CSS 버전을 보여 드리겠습니다. 그런 다음 JavaScript를 사용하여 간단한 구성 요소 스크립트를 개발하는 방법을 보여 드리겠습니다.
키 포인트
웹 페이지에 이미지 또는 컨텐츠를보다 동적으로 표시하기 위해 CSS 3D 변환 및 JavaScript를 사용하여 대화식 3D 회전 회전식을 만듭니다.
는 이미지 수에 기초한 다각형 근사치를 사용하여 원형 3D 공간에 이미지를 배열하여 회전 목마를 구성하고 JavaScript 향상을 통한 가시성 및 탐색을 제어합니다.
CSS에서 미디어 쿼리 및 백분율 기반 크기를 사용하여 회전식 그래프의 적응 형 디자인이 달성되므로 다양한 화면 크기 및 장치 방향에 적응할 수 있습니다.
HTML 및 JavaScript를 통해 내비게이션 컨트롤을 추가하여 사용자 상호 작용을 향상시켜 사용자가 회전식 맵 항목을 수동으로 루프 할 수 있습니다. 자동 재생, 전환 효과, 무한 루프 및 텍스트 또는 다른 모양 추가와 같은 고급 사용자 정의 옵션을 탐색하여 특정 설계 요구를 충족시키기위한 유연한 사용자 정의 옵션을 제공합니다.
문자 차트 마크
마크 업의 경우 구성 요소 내부의 이미지가
요소로 래핑되어 기본 프레임 워크를 제공합니다.
이것은 우리의 출발점이 될 것입니다.
회전 목마 그림의 기하학적 구조
CSS를보기 전에 다음 섹션에서 개발 될 계획을 간략하게 설명해 봅시다.
이 다각형의 수는 캐 러셀 다이어그램의 이미지와 동일합니다
회전 목마에 3 개 미만의 이미지가 있으면 어떻게해야합니까? 다각형을 정의 할 수 없으며 다음 프로세스를 그대로 적용 할 수 없습니다. 어쨌든, 두 개의 이미지가 하나만있는 것은 매우 쓸모가 없으며, 직경이있는 원의 반대쪽에 놓을 수 있습니다. 간단하게하기 위해, 이러한 특수한 경우는 처리되지 않으며 최소한 3 개의 이미지가 있다고 가정합니다. 그러나 관련 코드 수정은 어렵지 않습니다.
이 가상의 기준 다각형은 뷰포트 평면에 수직 인 3D 공간에 위치하고 중심을 화면으로 뒤로 밀면 거리는 중심 거리 (다각형의 한 가장자리에서 중앙까지의 거리)와 같습니다. , 아래 그림과 같이,
이런 식으로, 현재 뷰어 지향 가장자리는 화면 평면 z = 0에 있으며, 전면 이미지는 원근법 단축의 영향을받지 않으며 일반 2D 크기를 갖습니다. 그림의 문자 D는 CSS 관점 속성의 값을 나타냅니다.
회전 목마 그래프 기하 구조
를 구성하십시오
이 섹션에서는 주요 CSS 규칙을 보여 드리겠습니다. 단계별로 설명하겠습니다.
다음 코드 스 니펫에서 일부 SASS 변수를 사용하여 구성 요소를보다 쉽게 구성 할 수 있도록하십시오. <p>를 사용하여 회전 목마의 이미지 수를 나타내고 이미지의 너비를 지정하기 위해 <strong>를 사용합니다. </strong>
</p> <p> 요소는 첫 번째 이미지의 포함 상자이며 다른 이미지가 배치되고 변환되는 기준 요소이기도합니다. 이제 회전 목마에 표시 할 이미지가 하나만 있다고 가정하면 크기와 정렬로 시작할 수 있습니다.
</p>
<p> 요소는 규정 된 회전식 항목 너비를 가지며 이미지와 같은 높이를 갖습니다 (크기가 다를 수 있지만 종횡비가 동일해야합니다). 이러한 방식으로, 캐로 셀 컨테이너 높이는 이미지 높이에 따라 자동으로 조정됩니다. 또한 <is>는 수평으로 회전 목마 용기에 있습니다. <code>$n 첫 번째 이미지는 이미 대상 위치, 즉 회전 목마의 전면에 있기 때문에 추가 변환이 필요하지 않습니다. $item-width는 요소에 회전 변환을 적용하여 3D 공간에서 회전 목마를 회전시킬 수 있습니다. 이 회전은 다각형의 중심 주위에 있어야하므로 의 기본 변환-오리진을 변경합니다.
이 값은 CSS에서 z 축의 양의 방향이 화면을 떠나 뷰어를 향하는 것이기 때문에이 값은 역전됩니다. SASS 구문 오류를 피하려면 괄호가 필요합니다. 다각형 구석 거리의 계산은 나중에 설명됩니다. <figure></figure> 요소의 기준 시스템을 변환 한 후, 전체 회전 목마는 (새로운) y 축 회전에 의해 회전 될 수 있습니다 : .
나는 나중에이 회전의 세부 사항을 반환 할 것이다.
<code class="language-html"><div class="carousel">
<figure>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
...
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
</figure>
</div></code>
다른 이미지를 계속 변환합시다. 절대 포지셔닝을 사용하여 이미지는 : 내부에 쌓입니다
z-index 값은 이후 변환의 예비 단계 일뿐 때문에 무시됩니다. 실제로, 각 이미지는 이제 배정 된 이미지의 다각형 모서리에 따라 회전식 이미지의 y 축 주위에서 각도를 회전시킬 수 있습니다. 먼저, 요소와 마찬가지로 이미지의 기본 변환-오리핀을 수정하고 다각형의 중심으로 이동하십시오 : .
<code class="language-html"><div class="carousel">
<figure>
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
...
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="Building a 3D Rotating Carousel with CSS and JavaScript ">
</figure>
</div></code>
이미지는 라디안에 의해 제공되는 새로운 y 축에 대한 수량을 회전시킬 수 있습니다. 수학 상수 π를 의미합니다. 따라서 두 번째 이미지는
회전하고 세 번째 이미지는 ($i - 1) * $theta 회전하고 마지막 이미지가 회전 할 때까지 회전합니다. $i$theta = 2 * $PI / $n$PI 중첩 CSS 변환의 계층 적 특성으로 인해이 이미지의 상대적 배열은 회전식 맵 회전 중에 보존됩니다 (즉, 의 수정 된 y 축에 대한 회전). $theta이 이미지의 회전량은 sass 2 * $theta
위 내용은 CSS 및 JavaScript로 3D 회전 회전 목마 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!