>  기사  >  웹 프론트엔드  >  자바스크립트로 팝업 레이어를 구현하는 방법

자바스크립트로 팝업 레이어를 구현하는 방법

藏色散人
藏色散人원래의
2023-02-10 10:21:441714검색

JavaScript에서 팝업 레이어를 구현하는 방법: 1. HTML 샘플 파일을 생성합니다. 2. 먼저 표시할 콘텐츠를 숨긴 다음 클릭 조건이 트리거된 후 원래 숨겨진 콘텐츠를 표시합니다. "document.getElementById("open ").onclick = function(e){...}"; 3. 모든 원본 페이지 콘텐츠를 덮을 마스크 레이어를 제공합니다.

자바스크립트로 팝업 레이어를 구현하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, javascript 버전 1.8.5, Dell G3 컴퓨터.

자바스크립트에서 팝업 레이어를 구현하는 방법은 무엇인가요?

JAVASCRIPT를 사용하여 팝업 레이어 효과 얻기

Statement

이 기사를 읽으려면 HTML, CSS 및 JavaScript의 특정 기초가 필요합니다

Design

구현 아이디어 팝업 레이어 효과는 매우 간단합니다. 표시할 콘텐츠를 추가합니다. 먼저 콘텐츠가 숨겨지고 특정 조건(예: 버튼 클릭)이 트리거된 후에 원래 숨겨진 콘텐츠가 표시됩니다.

구현

<!DOCTYPE html>
<html>
<head>
    <title>Window对象</title>
    <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div style="display: none;background: lightblue;border:1px solid green;" id="toast">         <!--     设置display属性为none以隐藏内容             -->
    <p>这里是弹出层内容</p>
    <button type="button" id="close">关闭弹出层</button>
</div>
<script type="text/javascript">
    var toast = document.getElementById("toast");
    document.getElementById("open").onclick = function(e){           <!--    定义点击事件显示隐藏内容          -->
        toast.style.display = "block";
        toast.style.position = "fixed";
        var winWidth = window.innerWidth;
        var winHeight = window.innerHeight;
        var targetWidth = toast.offsetWidth;
        var targetHeight = toast.offsetHeight;
        toast.style.top = (winHeight - targetHeight) / 2 + "px";
        toast.style.left = (winWidth - targetWidth) / 2 + "px";
    }
    document.getElementById("close").onclick = function(e){               <!--      将显示的内容再次隐藏         -->
        toast.style.display = "none";
    }
</script>
</body>
</html>

표시 효과는 다음과 같습니다.

자바스크립트로 팝업 레이어를 구현하는 방법

하지만 숨겨진 콘텐츠가 나타난 후에도 링크를 통해 Baidu 페이지에 들어갈 수 있다는 것을 알 수 있습니다. 이런 일이 발생하지 않도록 하려면 모든 원본 페이지 콘텐츠를 덮는 마스크 레이어를 제공할 수 있습니다. 코드는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
    <title>Window对象</title>
    <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div id="cover" style="display: none;position: fixed;width: 100%;height: 100%;top:0px;left:0px;background: gray;">       <!-- 通过遮罩层遮住背景 -->
    <div style="background: lightblue;border:1px solid green;" id="toast">         <!-- 设置display属性为none以隐藏内容             -->
     <p>这里是弹出层内容</p>
      <button type="button" id="close">关闭弹出层</button>
  </div>
</div>
<script type="text/javascript">
    var toast = document.getElementById("toast");
    var cover = document.getElementById("cover");
    document.getElementById("open").onclick = function(e){           <!--    定义点击事件显示隐藏内容          -->
        cover.style.display = "block";
        toast.style.position = "fixed";
        var winWidth = window.innerWidth;
        var winHeight = window.innerHeight;
        var targetWidth = toast.offsetWidth;
        var targetHeight = toast.offsetHeight;
        toast.style.top = (winHeight - targetHeight) / 2 + "px";
        toast.style.left = (winWidth - targetWidth) / 2 + "px";
    }
    document.getElementById("close").onclick = function(e){               <!--      将显示的内容再次隐藏         -->
        cover.style.display = "none";
    }
</script>
</body>
</html>

아래와 같이 효과를 다시 테스트하기 위한 것입니다.

자바스크립트로 팝업 레이어를 구현하는 방법

Summary

위 내용은 단순히 팝업 레이어 효과를 구현한 것 뿐이지만, 위에서도 구현 가능합니다. 더 많은 코드를 추가하여 더 복잡한 기능을 기반으로 합니다.

추천 학습: "JavaScript 비디오 튜토리얼"

위 내용은 자바스크립트로 팝업 레이어를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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