찾다
웹 프론트엔드CSS 튜토리얼CSS3 캐러셀 예제 튜토리얼

CSS3 캐러셀 예제 튜토리얼

Jul 16, 2017 pm 04:27 PM
csscss3

이 글은 CSS3 캐러셀을 주로 소개하는데, 편집자가 꽤 좋다고 생각해서 공유해봅니다. 편집기를 따라 살펴보겠습니다

1.spective

perspective 속성에는 없음과 단위가 있는 길이 값이라는 두 가지 속성이 포함됩니다.

perspective 속성의 기본값은 없음입니다. 즉, 3D 개체를 무한한 각도에서 볼 수 있지만 평면적으로 보입니다. 또 다른 값인 는 0보다 큰 길이 단위의 값을 허용합니다. 그리고 그 단위는 백분율 값이 될 수 없습니다. 값이 클수록 각도가 더 멀리 나타나고 3D 공간에서 강도가 다소 낮아지고 변화가 거의 없습니다. 반대로 이 값이 작을수록 각도가 더 가까워져 각도가 강해지고 3D 변형이 커집니다. 간단히 말하면, 원근감이 길이를 설정할 때 길이가 작을수록 3D 효과가 더 분명해지고 눈이 3D 개체에 더 가까워지며 그 반대도 마찬가지입니다.

2.transform:translateZ(length)

Perspective가 300px로 설정된 경우 TranslateZ의 값이 작아질수록 값이 에 가까울수록 하위 요소의 크기가 작아진다고 가정합니다. 300px이면 요소가 앞에 있는 것처럼 보입니다. 300px를 초과하면 시야 뒤쪽에 도달하고 요소가 더 이상 표시되지 않습니다.

위 예제의 핵심:

1 먼저 모든 이미지 컨테이너를 position:absolute로 쌓은 다음, RotateY를 각각 40*i로 설정합니다. i= 0, 1, 2...9; 이미지는 꽃과 같은 모양으로 교차됩니다

2. 그런 다음 각 이미지 컨테이너에 대해translateZ를 설정합니다. 모든 이미지는 해당 각도에서 바깥쪽으로 이동하고 위 그림의 효과인 큰 원으로 확장됩니다.

html:

<!DOCTYPE html>  
<html>  
<head>  
    <title></title>  
    <meta charset="utf-8"/>  
   <link href="css/reset.css" rel="stylesheet" type="text/css"/>  
    <script type="text/javascript" src="../../jquery-1.8.3.js"></script>  
  
    <script type="text/javascript">  
        // alert( 64 / Math.tan(20 / 180 * Math.PI));  
        var transform = function (element, value, key)  
        {  
            key = key || "Transform";  
            ["Moz", "O", "Ms", "Webkit", ""].forEach(function (prefix)  
            {  
                element.style[prefix + key] = value;  
            });  
  
            return element;  
        }  
  
  
        $(function ()  
        {  
            var deg = -40 , i = 1;  
            $("#container").click(function ()  
            {  
                transform($(this)[0], "rotateY(" + (deg * i++) + "deg)")  
            });  
        });  
  
    </script>  
  
     
  
</head>  
<body>  
<p id="stage">  
    <ul id="container">  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/1.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" >  
            <span>Do one thing at a time, and do well..</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/2.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Do one thing at a time, and do well..</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/3.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Keep on going never give up.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/4.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Whatever is worth doing is worth doing well.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/5.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Believe in yourself.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/6.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Action speak louder than words.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/7.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Never put off what you can do today until tomorrow.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/8.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Jack of all trades and master of none.</span>  
        </li>  
        <li>  
            <img  src="/static/imghwm/default1.png"  data-src="img/9.jpg"  class="lazy"  / alt="CSS3 캐러셀 예제 튜토리얼" > <span>Judge not from appearances.</span>  
        </li>  
    </ul>  
</p>  
</body>  
</html>

CSS:


li  
{  
    width: 128px;  
    box-shadow: 0 1px 3px rgba(0, 0, 0, .5);  
    position: absolute;  
    bottom: 0;  
}  
  
li img  
{  
    width: 128px;  
    box-shadow: 0 1px 3px rgba(0, 0, 0, .5);  
    vertical-align: middle;  
}  
  
li span  
{  
    display: block;  
    width: 128px;  
    text-align: center;  
    color: #333;  
    font-size: 8px;  
}  
  
#stage  
{  
  
    width: 900px;  
    min-height: 100px;  
    margin-left: auto;  
    margin-right: auto;  
    padding: 100px 50px;  
    -webkit-perspective: 1200px;  
    position: relative;  
}  
  
#container  
{  
    background: url("img/xawl.jpg") no-repeat 0 0;  
    margin-top: 200px;  
    width: 128px;  
    box-shadow: 0 1px 3px rgba(0, 0, 0, 5);  
    height: 100px;  
    margin-left: -64px;  
    -webkit-transition: -webkit-transform 1s;  
    transition: transform 1s;  
    -webkit-transform-style: preserve-3d;  
    position: absolute;  
    left: 50%;  
}  
  
li:nth-child(0)  
{  
    -webkit-transform: rotateY(0deg) translateZ(300px);  
}  
  
li:nth-child(1)  
{  
    -webkit-transform: rotateY(40deg) translateZ(300px);  
}  
  
li:nth-child(2)  
{  
    -webkit-transform: rotateY(80deg) translateZ(300px);  
}  
  
li:nth-child(3)  
{  
    -webkit-transform: rotateY(120deg) translateZ(300px);  
}  
  
li:nth-child(4)  
{  
    -webkit-transform: rotateY(160deg) translateZ(300px);  
}  
  
li:nth-child(5)  
{  
    -webkit-transform: rotateY(200deg) translateZ(300px);  
}  
  
li:nth-child(6)  
{  
    -webkit-transform: rotateY(240deg) translateZ(300px);  
}  
  
li:nth-child(7)  
{  
    -webkit-transform: rotateY(280deg) translateZ(300px);  
}  
  
li:nth-child(8)  
{  
    -webkit-transform: rotateY(320deg) translateZ(300px);  
}  
  
li:nth-child(9)  
{  
    -webkit-transform: rotateY(360deg) translateZ(300px);  
}

p#stage를 스테이지로 설정하고, 각 li에 대해 각각 RotateY 및 TranslateZ를 설정한 다음 p#container를 설정하고 -webkit-transform-style:을 유지합니다. -3d;

transform-style: flat | preserve-3d

flat 값은 기본값으로, 모든 하위 요소가 2D 평면에 렌더링된다는 의미입니다. Preserve-3d는 모든 하위 요소가 3D 공간에서 렌더링됨을 의미합니다. 요소에 대해 변환 스타일 값이 Preserve-3d로 설정된 경우 병합 작업이 수행되지 않고 해당 하위 요소가 모두 3D 공간에 위치함을 의미합니다. 일반적인 상황에서 이 속성은 3D 애니메이션 효과의 실행 요소, 즉 3D 애니메이션 효과를 적용하는 데 사용되므로 해당 하위 요소는 모두 3D 공간에 있어야 합니다.

주의할 점: 이 예에서는 실제로 마우스 클릭으로 인해 애니메이션 효과가 발생합니다. p#Container는 모든 그림 요소가 p#container에 있고 회전식 효과로 표시되었습니다. 우리가 하는 일은 이 트로이 목마를 회전시키는 것이므로 매번 p#container의 회전Y 40 각도만 변경하면 됩니다.

위 내용은 CSS3 캐러셀 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
커서를위한 다음 레벨 CSS 스타일커서를위한 다음 레벨 CSS 스타일Apr 23, 2025 am 11:04 AM

CSS가있는 커스텀 커서는 훌륭하지만 JavaScript를 사용하여 다음 단계로 가져갈 수 있습니다. JavaScript를 사용하면 커서 상태를 전환하고 커서 내에 동적 텍스트를 배치하고 복잡한 애니메이션을 적용하며 필터를 적용 할 수 있습니다.

Worlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionWorlds Collide : 스타일 쿼리를 사용한 KeyFrame Collision DetectionApr 23, 2025 am 10:42 AM

2025 년에 서로를 ricocheting하는 요소가있는 대화식 CSS 애니메이션은 CSS에서 Pong을 구현할 필요가 없지만 CSS의 유연성과 힘이 증가하는 것은 LEE의 의심을 강화합니다.

UI 효과를 위해 CSS 배경 필터 사용UI 효과를 위해 CSS 배경 필터 사용Apr 23, 2025 am 10:20 AM

CSS 배경 필터 속성을 사용하여 사용자 인터페이스 스타일에 대한 팁과 요령. 여러 요소들 사이에 필터를 배경으로 배경으로 배경으로하는 방법을 배우고 다른 CSS 그래픽 효과와 통합하여 정교한 디자인을 만듭니다.

미소?미소?Apr 23, 2025 am 09:57 AM

글쎄, SVG '의 내장 애니메이션 기능은 계획대로 이상 사용되지 않았다. 물론 CSS와 JavaScript는 부하를 운반 할 수있는 것 이상이지만 Smil이 이전과 같이 물에서 죽지 않았다는 것을 아는 것이 좋습니다.

'예쁜'은 보는 사람의 눈에 있습니다'예쁜'은 보는 사람의 눈에 있습니다Apr 23, 2025 am 09:40 AM

예, 텍스트-랩을위한 점프 : Safari Technology Preview의 예쁜 착륙! 그러나 Chromium 브라우저에서 작동하는 방식과는 다른 점을 조심하십시오.

CSS- 트릭 연대기 XLIIICSS- 트릭 연대기 XLIIIApr 23, 2025 am 09:35 AM

이 CSS- 트릭 업데이트는 Almanac, 최근 Podcast 출연, 새로운 CSS 카운터 가이드 및 귀중한 컨텐츠에 기여하는 몇 가지 새로운 저자의 추가 진전을 강조합니다.

Tailwind ' s @apply 기능은 소리보다 낫습니다Tailwind ' s @apply 기능은 소리보다 낫습니다Apr 23, 2025 am 09:23 AM

대부분의 경우 사람들은 Tailwind ' S 단일 프로퍼 유틸리티 중 하나 (단일 CSS 선언을 변경)와 함께 Tailwind ' s @apply 기능을 보여줍니다. 이런 식으로 선보일 때 @apply는 전혀 약속하는 소리가 들리지 않습니다. 그래서 Obvio

릴리스가없는 느낌 : 제정신 배치를 향한 여정릴리스가없는 느낌 : 제정신 배치를 향한 여정Apr 23, 2025 am 09:19 AM

바보처럼 배포하는 것은 배포하는 데 사용하는 도구와 복잡성에 대한 보상과 복잡성이 추가됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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