<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .content{ height: 1800px; background-color: antiquewhite; } .shade{ position: fixed; /*固定在某一位置*/ top: 0; right: 0; bottom: 0; left: 0; /*满屏的效果*/ background-color: gray; opacity: 0.5; /*透明度为0.5*/ } .model{ width: 200px; height: 200px; background-color: bisque; position: absolute; /*让其脱离文档流,调节div位置*/ top: 50%; left: 50%; /*让div居中,但是居中的是div左上角*/ margin-top: -100px; margin-left: -100px; /*往左和往上移100px即可*/ } .hide{ display: none; /*当display等于none时,是隐藏的效果*/ } </style> </head> <body> <div class="content"> <button onclick="func1()">show1</button> </div> <!--这个div是最底层的--> <div class="shade hide"></div> <!--这一层是遮罩层--> <div class="model hide"> <button onclick="func2()">show2</button> </div> <!--这一层是最顶层--> <script> function func1() { var ele=document.getElementsByClassName('shade')[0]; ele.classList.remove('hide'); var ele1=document.getElementsByClassName('model')[0]; ele1.classList.remove('hide'); }; // 点击show1按钮,移除两个标签class的hide值,这样就显现出来了 function func2() { var ele=document.getElementsByClassName('shade')[0]; ele.classList.add('hide'); var ele1=document.getElementsByClassName('model')[0]; ele1.classList.add('hide'); }; // 点击show2按钮,添加两个标签class的hide值,这样又隐藏起来 // 这样的功能,还可以通过z-index进行设置,前面有讲到 </script> </body> </html>