이 글의 내용은 순수 CSS를 사용하여 항공기 현창 스타일 토글 컨트롤을 구현하는 방법에 대한 내용이며, 필요한 친구들이 참고할 수 있기를 바랍니다. 당신.
효과 미리보기
소스코드 다운로드
https ://github.com/comehope/front-end-daily-challenges
코드 해석
Define dom, .windows
컨테이너는 현창을 나타냅니다. , 하위 요소인 .curtain
은 커튼을 나타냅니다. .windows
容器表示舷窗,它的子元素 .curtain
表示窗帘:
<figure> <div></div> </figure>
居中显示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: skyblue; }
设置舷窗的尺寸,因为后面还会用到字号,所以字号用变量定义:
:root { --font-size: 10px; } .window { position: relative; box-sizing: border-box; width: 25em; height: 35em; font-size: var(--font-size); background-color: #d9d9d9; }
用阴影画出厚窗框:
.window { border-radius: 5em; box-shadow: inset 0 0 8em rgba(0, 0, 0, 0.2), 0 0 0 0.4em #808080, 0 0 0 4em whitesmoke, 0 0 0 4.4em #808080, 0 2em 4em 4em rgba(0, 0, 0, 0.1); }
设置窗帘样式,和窗口尺寸一样,但不拉到底:
.window .curtain { position: absolute; width: inherit; height: inherit; border-radius: 5em; box-shadow: 0 0 0 0.5em #808080, 0 0 3em rgba(0, 0, 0, 0.4); background-color: whitesmoke; left: 0; top: -5%; }
用伪元素在窗帘上画出指示灯,当窗帘关闭时亮红色光:
.window .curtain::before { content: ''; position: absolute; width: 40%; height: 0.8em; background-color: #808080; left: 30%; bottom: 1.6em; border-radius: 0.4em; } .window .curtain::after { content: ''; position: absolute; width: 1.6em; height: 0.8em; background-image: radial-gradient(orange, orangered); bottom: 1.6em; border-radius: 0.4em; left: calc((100% - 1.6em) / 2); }
以上是舷窗关闭时的样子,接下来绘制舷窗打开时的效果。
先在 dom 中添加一个 checkbox
,当它被 checked
时即表示舷窗被打开:
<figure> <div></div> </figure>
隐藏 checkbox
,用 opacity(0)
可以使元素在不可见的状态下仍可交互,把它的尺寸设置得到舷窗一样大,并且图层在舷窗之上,得到的效果就是点击舷窗时实际是点击了 checkbox
:
.toggle { position: absolute; filter: opacity(0); width: 25em; height: 35em; font-size: var(--font-size); cursor: pointer; z-index: 2; }
当舷窗打开时,.curtain
要向上移动,并且指示灯亮绿色光:
.window .curtain { transition: 0.5s ease-in-out; } .toggle:checked ~ .window .curtain { top: -90%; } .toggle:checked ~ .window .curtain::after { background-image: radial-gradient(lightgreen, limegreen); }
隐藏超出窗户的部分:
.window { overflow: hidden; }
接下来绘制舷窗外的风景。
在 dom 中增加表示云朵的 .clouds
元素,其中的 5 个 <span></span>
<input> <figure> <div></div> <div> <span></span> <span></span> <span></span> <span></span> <span></span> </div> </figure>가운데 표시:
.window .clouds { position: relative; width: 20em; height: 30em; background-color: deepskyblue; box-shadow: 0 0 0 0.4em #808080; left: calc((100% - 20em) / 2); top: calc((100% - 30em) / 2); border-radius: 7em; }글꼴 크기에 따라 현창의 크기를 설정합니다. 나중에 사용할 수 있으므로 글꼴 크기는 변수로 정의됩니다:
.clouds span { position: absolute; width: 10em; height: 4em; background-color: white; top: 20%; border-radius: 4em; }그림자를 사용하여 두꺼운 창틀 그리기:
.clouds span::before, .clouds span::after { content: ''; position: absolute; width: 4em; height: 4em; background-color: white; border-radius: 50%; } .clouds span::before { top: -2em; left: 2em; } .clouds span::after { top: -1em; right: 1em; }커튼 스타일을 다음과 같은 크기로 설정 창문은 있지만 바닥은 아님:
.clouds span { animation: move 4s linear infinite; } @keyframes move { from { left: -150%; } to { left: 150%; } }의사 요소를 사용하여 커튼에 표시등을 그립니다. 커튼이 닫히면 빨간색으로 켜집니다.
.clouds span:nth-child(2) { top: 40%; animation-delay: -1s; } .clouds span:nth-child(3) { top: 60%; animation-delay: -0.5s; } .clouds span:nth-child(4) { top: 20%; transform: scale(2); animation-delay: -1.5s; } .clouds span:nth-child(5) { top: 70%; transform: scale(1.5); animation-delay: -3s; }위 현창이 닫혀 있을 때의 모습입니다. 다음으로 현창이 열렸을 때의 효과를 그립니다.
먼저 DOM에 체크박스
를 추가하세요. 체크
되면 포트홀이 열린다는 뜻입니다:
.window .clouds { overflow: hidden; }
Hide 확인란, opacity(0)
를 사용하여 요소가 보이지 않을 때에도 상호 작용하도록 만들고 크기를 현창만큼 크게 설정하고 레이어가 현창 위에 있습니다. 효과는 현창을 클릭할 때 실제로 체크박스
를 클릭하는 것입니다:
When the porthole is open, .curtain
위로 움직이고 표시등이 녹색으로 변합니다. 표시등:
rrreee
.clouds
요소를 추가하고 5개의 <span></span>
하위 요소는 각각 1개의 흰 구름을 나타냅니다. #🎜🎜#rrreee #🎜🎜#구름 컨테이너를 사용하여 창 밖의 푸른 하늘 그리기: #🎜🎜#rrreee#🎜🎜#각 구름은 3개의 부분으로 구성됩니다. 먼저 가장 큰 부분을 그립니다. #🎜🎜#rrreee#🎜🎜# 그런 다음. 의사 요소 사용 2개의 돌출된 호 그리기: #🎜🎜#rrreee#🎜🎜# 떠 있는 구름의 애니메이션 효과 높이기: #🎜🎜#rrreee#🎜🎜# 각 구름의 크기와 위치를 약간 변경: #🎜🎜# rrreee #🎜🎜#마지막으로 컨테이너 외부의 콘텐츠를 숨깁니다. #🎜🎜#rrreee#🎜🎜#완료되었습니다! #🎜🎜##🎜🎜##🎜🎜##🎜🎜#위 내용은 순수 CSS를 사용하여 항공기 현창 스타일 토글 컨트롤을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

React Ecosystem은 모두 드래그 앤 드롭의 상호 작용에 중점을 둔 많은 라이브러리를 제공합니다. 우리는 React-dnd, React-beautiful-dnd를 가지고 있습니다.

나는 자주 배경 클립을 사용한다고 말할 수 없습니다. I ' D WART IT IT는 일상적인 CSS 작업에서 거의 사용되지 않았습니다. 그러나 나는 Stefan Judis의 게시물에서 그것을 상기시켰다.

requestAnimationFrame을 사용하여 애니메이션은 쉬워야하지만 React의 문서를 철저히 읽지 않으면 몇 가지 문제가 발생할 수 있습니다.

아마도이를 사용자에게 제공하는 가장 쉬운 방법은 요소의 ID를 대상으로하는 링크 일 것입니다. 그래서 ...처럼 ...

들어보세요, 나는 GraphQL 전문가가 아니지만 함께 일하는 것을 좋아합니다. 프론트 엔드 개발자로서 데이터를 노출시키는 방법은 꽤 멋지다. 메뉴와 같습니다

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


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

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