原生js实现简单的模态框

Posted 野得像风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js实现简单的模态框相关的知识,希望对你有一定的参考价值。

html部分:

<img src="images/8.jpg" alt="">
 <button class="btn" id="showMax">显示大图</button> 
  <div id="modalBox" class="modalBox">
   <div class="modalBox-matter">
        <header class="modalBox-header">
            <span class="mtclose">×</span>
        </header> 
        <div class="modalBox-body">

    <img src="images/8-1.jpg">

  </div>
 </div>
</div>

js部分:

var btn = document.getElementById(\'showMax\'); 
   var mtclose = document.getElementsByClassName(\'mtclose\')[0];
   var modalBox = document.getElementById(\'modalBox\'); 
   btn.addEventListener(\'click\', function(){ 
       modalBox.style.display = "block"; 
   }); 
   mtclose.addEventListener(\'click\', function(){ 
       modalBox.style.display = "none"; 
   });

css部分:

.btn{
    width: 100px; 
    height: 35px; 
    border-radius: 5px; 
    font-size: 16px; 
    color: #F97B39;

 position: absolute;
    top: 130px;
    left: 160px;
    opacity: 0.2;
    cursor: pointer; /*鼠标小手*/

.btn:hover, .btn:focus{  /*focus 取得焦点状态*/
    background-color: #8AA7F9;
    opacity: 0.5;
    color: #FFFFFF;

.modalBox{ 
    display: none; 
    width: 100%; 
    height: 100%; 
    position: fixed; 
    left: 0; 
    top: 0; 
    z-index: 1000; 
    background-color: rgba(0,0,0,0.5);
}

.modalBox-matter{  
    display: flex;      /*/*弹性布局*/
    flex-flow: column nowrap; 
    justify-content: space-between;      /*两端对齐*/
    width: 50%;  
    height: 80%;
    margin: 30px auto 100px; 
    border-radius:10px;
    -webkit-animation: zoom 0.6s; 
    animation: zoom 0.6s; 
    resize: both; 
    overflow: auto; 
}

@keyframes zoom{ 
    from {transform: scale(0)} 
    to {transform: scale(1)} 
}

.modalBox-header{

  margin-left: 617px;
}

.mtclose{
   color: #602E2A; 
   font-size: 3em; 
   font-weight: bold;  
   transition: all 0.3s;
   /*z-index: 1010; */
 } 
 .mtclose:hover, .mtclose:focus{ 
    color: #602E2A;  
    cursor: pointer; 
}

.modalBox-body{ 
    padding: 10px; 
    font-size: 16px; 
}

效果

因为正在进行的一个项目中,需要一个模态框,所以花时间在网上自学的,相对来说比较简单,可以自行修改内容。。。

以上是关于原生js实现简单的模态框的主要内容,如果未能解决你的问题,请参考以下文章

原生js封装模态框

原生js封装模态框

第126天:移动端-原生实现响应式模态框

js 实例2 实现模态框弹出;

纯js实现自定义模态框

使用bootstrap的插件实现模态框效果方法步骤详解