팝업 만들기
10563 단어 htmljavascriptcss
실제(짧은) 프로세스
실제로 DOM에 무엇을 표시하고 싶습니까? 첫 번째 레이어는 나중에 팝업에 더 많은 대비를 제공하기 위해 "본문"콘텐츠를 어둡게 하여 포커스를 해제하는 것으로 시작합니다.
<body>
<div id="blur-cover">
<div id="pop-up">
</div>
</div>
</body>
HTML 요소는 구체적이지 않으며 흐림 효과를 위한 "div"와 실제 콘텐츠를 위한 또 다른 요소를 포함합니다. 이벤트 리스너를 클릭하면 나타나는 창입니다.
몇 가지 품질로 "div"를 표시하는 첫 번째 스타일은 다음과 같습니다.
#blur-cover{
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.7)
}
#pop-up{
width: 500px;
height: 300px;
background-color: white;
}
이 선은 이제 반투명한 "div"인 배경 흐림 효과를 생성하여 여백 내에서 "div"의 배경을 어둡게 하고 적절한 크기의 단색 흰색 "div"를 전체 위에 오버레이합니다. 깊이를 보기 위한 필러 사진:
그런 다음 올바른 위치에 "div"를 배치하기 위한 추가 스타일이 제공됩니다.
#blur-cover{
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.7);
position: fixed;
top: 0;
justify-content: center;
align-items: center;
display: flex;
}
#pop-up{
width: 500px;
height: 300px;
background-color: white;
border-radius: 15px;
position: absolute;
}
이제 흰색 상자는 스크롤하는 동안에도 페이지 중앙에 있으며 배경은 "본문"요소의 어두운 버전입니다. #blur-cover의 "background-color"는 불투명도 값이 0.7인 "rgba"로 설정됩니다. "배경색"을 "검은색"과 같은 것으로 호출한 다음 "불투명도"를 0.7로 지정하면 작동하는 것처럼 보입니다. 그런 다음 "div"내의 모든 요소에 70%의 투명도를 적용합니다. 우리가 원하지 않는 팝업을 포함합니다.
CSS를 더 자세히 설명하기 위해 #blur-cover에는 이제 다음에 대한 속성이 있습니다.
top: 0;
justify-content: center;
align-items: center;
display: flex;
"top"은 요소를 페이지 상단에서 시작하도록 가져오고, "justify-content: center"는 자식 "div"를 페이지 중앙에 가로로 정렬하고, "align-items: center"는 자식을 세로로 정렬합니다. div"를 페이지 중간에 넣습니다. "display: flex"는 "div"를 중앙에 배치하기 위해 두 번째 및 세 번째 줄과 함께 작동합니다. 여기서 우리는 일반적으로 이 세 가지가 조합되어 요소를 중앙에 배치하는 것을 볼 수 있습니다.
#pop-up "div"의 위치를 지정하기 위해 추가된 CSS는 흰색 상자 주위에 더 부드러운 가장자리를 만들기 위한 "border-radius"이고 상자를 정적으로 만드는 "position: absolute"와 같이 매우 간단하고 반미적입니다. 스크롤.
그런 다음 이벤트 리스너가 있는 버튼을 지정하여 클릭했을 때 실제로 팝업이 나타나도록 하고 팝업을 종료하는 방법도 지정해야 합니다.
X 만들기:
<div id="pop-up">
<div id="close">+<div>
</div>
"x"는 대칭이 아니기 때문에 실제 "x"문자일 수 없습니다. 따라서 "+"로 대체할 수 있으며 45도 회전하고 팝업에 배치할 수도 있습니다.
#close{
position: absolute;
top: 0;
cursor: pointer;
font-size: 40px;
transform: rotate(45deg);
right: 14px;
}
더 진행하기 전에 "#blur-cover"속성을 하나 더 설정하여 기본 DOM에 팝업이 표시되지 않도록 해야 합니다.
display: none;
이것은 팝업 버튼 또는 "x"버튼을 클릭하는지 여부에 따라 "표시"값을 전환하는 이벤트 리스너의 전제가 됩니다.
document.getElementById('btn').addEventListener('click', e => {
e.preventDefault();
document.querySelector('#blur-cover').style.display = 'flex';
})
document.querySelector('#close').addEventListener('click', e => {
e.preventDefault();
document.querySelector('#blur-cover').style.display = 'none';
})
그런 다음 JavaScript의 첫 번째 몇 줄을 만들어 모든 버튼이 기능적으로 팝업이 나타나도록 합니다.
폐쇄
이것을 배우는 나의 주된 목표는 CSS를 향상시키는 것이었고, 내가 해결한 이 질문은 항상 내 마음 한구석에 있었습니다. 이를 통해 CSS 문제를 처리하는 방법도 개선되었으며, 적용 방법만 생각했다면 이전 경험과 지식으로도 이 작업을 수행할 수 있었음을 깨달았습니다. 항상 개선의 여지가 있습니다. 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(팝업 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/konstantinstanmeyer/creating-pop-ups-11om텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)