原生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; 
}

效果

因為正在進行的一個項目中,需要一個模態框,所以花時間在網上自學的,相對來說比較簡單,可以自行修改內容。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM