>  기사  >  웹 프론트엔드  >  CSS3는 문을 동적으로 여는 효과를 실현합니다(코드 예).

CSS3는 문을 동적으로 여는 효과를 실현합니다(코드 예).

青灯夜游
青灯夜游원래의
2018-09-21 14:47:243422검색

이 장에서는 문 효과를 동적으로 여는 CSS3를 소개합니다(코드 예). 특정 참고값이 있습니다. 도움이 필요한 친구에게 도움이 되길 바랍니다.

먼저 렌더링을 살펴보세요.

CSS3는 문을 동적으로 여는 효과를 실현합니다(코드 예).

동적으로 문을 여는 효과는 주로 3D 회전 및 위치 지정을 사용합니다. 기술. 구체적인 단계는 다음과 같습니다.

1 먼저 페이지 본문에 매우 간단한 세 개의 div 태그를 추가합니다.

<div class="door">
     <div class="door-l"></div>
     <div class="door-r"></div>
</div>

2 기본 속성, 배경, 시야 거리 및 상대 위치(하위 상자)를 외부 상자에 추가합니다. (.door) 절대 위치 지정이 필요하므로 상위 상자에 상대 위치 지정을 추가하는 것이 가장 좋습니다.

.door {
            width: 450px;
            height: 450px;
            border: 1px solid #000000;
            margin: 100px auto;
            background: url(Images/men.png) no-repeat;
            background-size: 100% 100%;
            position: relative;
            perspective: 1000px;
        }

3. 왼쪽 및 오른쪽 문에 대한 관련 속성을 설정합니다. 왼쪽 상자의 관련 속성은 다음과 같습니다. 오른쪽 상자는 오른쪽 거리에 대한 위치를 0으로 변경하고 회전축을 오른쪽으로 변경하기만 하면 됩니다.

.door-l {
            width: 50%;
            height: 100%;
            background-color: brown;
            position: absolute;
            top: 0;
            transition: all 0.5s;
            left: 0;
            border-right: 1px solid #000000;
            transform-origin: left;
        }

4. 문에 작은 고리를 추가하세요. 여기에는 이전에 의사 클래스를 사용하여 추가되었습니다.

   (1) 크기와 테두리를 설정합니다.

   (2) 테두리 반경을 50%로 설정하여 원형으로 만듭니다.

  (3) 위치는 수직 중앙에 위치하고 내부에서 일정 거리를 유지하도록 설정합니다.

.door-l::before {
            content: "";
            border: 1px solid #000000;
            width: 20px;
            height: 20px;
            position: absolute;
            top: 50%;
            border-radius: 50%;
            transform: translateY(-50%);
            right: 5px;
        }

5. 마지막으로 회전 각도를 설정했습니다. 여기서는 120도를 설정했습니다(도의 양수와 음수는 회전 방향을 나타냄).

.door:hover .door-l {
            transform: rotateY(-120deg);
        }

전체 코드는 참조용으로 아래에 제공됩니다.

<!DOCTYPE html>
<html>
    <head>
	<meta charset="UTF-8">
	<title>动态打开大门</title>
	<style>
	.door {
            width: 450px;
            height: 450px;
            border: 1px solid #000000;
            margin: 100px auto;
            background: url(Images/men.png) no-repeat;
            background-size: 100% 100%;
            position: relative;
            perspective: 1000px;
        }
        .door-l,.door-r {
            width: 50%;
            height: 100%;
            background-color: brown;
            position: absolute;
            top: 0;
            transition: all 0.5s;
        }
        .door-l {
            left: 0;
            border-right: 1px solid #000000;
            transform-origin: left;
        } 
        .door-r {
            right: 0;
            border-left: 1px solid #000000;
            transform-origin: right;
        }
        .door-l::before, .door-r::before {
            content: "";
            border: 1px solid #000000;
            width: 20px;
            height: 20px;
            position: absolute;
            top: 50%;
            border-radius: 50%;
            transform: translateY(-50%);
        }
        
        .door-l::before {
            right: 5px;
        } 
        .door-r::before {
            left: 5px;
        }
        .door:hover .door-l {
            transform: rotateY(-120deg);
        }
        .door:hover .door-r {
            transform: rotateY(120deg);
        }
		</style>
	</head>
	<body>
		<div class="door">
			<div class="door-l"></div>
			<div class="door-r"></div>
		</div>
	</body>
</html>

위에 제공된 렌더링은 정적입니다. 위 코드를 직접 컴파일하여 효과를 확인할 수 있습니다. 도움이 되길 바랍니다

위 내용은 CSS3는 문을 동적으로 여는 효과를 실현합니다(코드 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

관련 기사

더보기