摘要:燈箱效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。燈箱效果教學燈箱效果例子視頻連結站燈箱效果實現燈箱效果的重點在于預設隱藏燈箱。圖片放大的效果可透過動畫實現。
燈箱(Lightbox)效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。這種效果可用于單張圖片,也可用于圖片庫。其原理跟模態框(Modal)基本一樣。W3Schools有分Modal Images和Lightbox兩個教學,主要差別在于Lightbox是為多張圖片設計,而Modal Images則是單張圖片。為了方便理解這里選擇Modal Images,若能理解此例,加上之前的幻燈片,就差不多等于Lightbox中的例子。今天我們就來看看W3Schools是怎樣實理燈箱效果。
W3Schools燈箱效果教學
燈箱效果例子
視頻連結B站
YouTube
燈箱效果(Lightbox)實現燈箱效果的重點在于:
預設隱藏燈箱。
當小圖被點擊時,顯示燈箱。
圖片放大的效果可透過CSS動畫實現。
以下是燈箱效果的HTML部分:
×
第一張圖片是小圖,設定了最大寬度為300px。接著是燈箱,也是一個擬態框(Modal),當中有關閉按鈕、大圖和標題。其中圖片是沒有指定src的,留給JavaScript來處理,標題也一樣。燈箱一開始是隱藏的。
再來看CSS的部分:
/* Style the Image Used to Trigger the Modal */ #myImg { border-radius: 5px; cursor: pointer; transition: 0.3s; } #myImg:hover {opacity: 0.7;} /* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ padding-top: 100px; /* Location of the box */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.9); /* Black w/ opacity */ } /* Modal Content (Image) */ .modal-content { margin: auto; display: block; width: 80%; max-width: 700px; } /* Caption of Modal Image (Image Text) - Same Width as the Image */ #caption { margin: auto; display: block; width: 80%; max-width: 700px; text-align: center; color: #ccc; padding: 10px 0; height: 150px; } /* Add Animation - Zoom in the Modal */ .modal-content, #caption { animation-name: zoom; animation-duration: 0.6s; } @keyframes zoom { from {transform:scale(0)} to {transform:scale(1)} } /* The Close Button */ .close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; transition: 0.3s; } .close:hover, .close:focus { color: #bbb; text-decoration: none; cursor: pointer; } /* 100% Image Width on Smaller Screens */ @media only screen and (max-width: 700px){ .modal-content { width: 100%; } }
重點在.modal,一開始不顯示,且是占滿全屏。背景顏色是黑色,加了一點透明度。
放大動畫用CSS動畫實現,其實就是用transform將圖片和標題的scale從0放大到1。
最后來看JavaScript:
// Get the modal
var modal = document.getElementById("myModal");
// Get the image and insert it inside the modal - use its "alt" text as a caption
var img = document.getElementById("myImg");
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
modal.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
// Get the element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
JavaScript的部分,主要是將第一張圖片的資料用到燈箱當中,像是src等,并將燈箱顯示出來。另外也完成了關閉按鈕的功能:隱藏燈箱。
W3Schools系列的代碼都在GitHub上:W3Schools GitHub
W3Schools教學系列W3Schools是知名的網頁設計/前端開發教學網站,不僅提供HTML、CSS、JavaScript等的詳盡教學,還可以把它當作說明文件(Documents)。有經驗的前端或多或少已經接觸過這個網站,因為它經常出現在搜索結果的前幾項。其中,它的How To部分更是包含了大量非常實用的例子,例如,如何制作SlideShow(圖片輪播)、Lightbox、Parallax(視差效果)等等。因此我想做一系列的影片專門介紹這些How To。
W3Schools系列全部視頻:
Float響應式網頁布局
Flexbox響應式網頁布局
CSS Grid響應式網頁布局
幻燈片如何實現
響應式導航如何實現
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54734.html
摘要:燈箱效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。燈箱效果教學燈箱效果例子視頻連結站燈箱效果實現燈箱效果的重點在于預設隱藏燈箱。圖片放大的效果可透過動畫實現。 燈箱(Lightbox)效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。這種效果可用于單張圖片,也可用于圖片庫。其原理跟模態框(Modal)基本一樣。W3Schools有分Modal Images和Lightbox兩個...
摘要:燈箱效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。燈箱效果教學燈箱效果例子視頻連結站燈箱效果實現燈箱效果的重點在于預設隱藏燈箱。圖片放大的效果可透過動畫實現。 燈箱(Lightbox)效果是將圖片放大彈出顯示,并將背景變暗,以突出圖片。這種效果可用于單張圖片,也可用于圖片庫。其原理跟模態框(Modal)基本一樣。W3Schools有分Modal Images和Lightbox兩個...
摘要:幻燈片是網頁上常見的一項功能,今日我們來看看上的幻燈片教學。這就是幻燈片最核心的邏輯。系列全部視頻響應式網頁布局響應式網頁布局響應式網頁布局幻燈片如何實現響應式導航如何實現 幻燈片(Slideshow)是網頁上常見的一項功能,今日我們來看看W3Schools上的幻燈片教學。 W3Schools 幻燈片教學 幻燈片例子 簡化版幻燈片例子 視頻連結 B站 YouTube 幻燈片(S...
摘要:幻燈片是網頁上常見的一項功能,今日我們來看看上的幻燈片教學。這就是幻燈片最核心的邏輯。系列全部視頻響應式網頁布局響應式網頁布局響應式網頁布局幻燈片如何實現響應式導航如何實現 幻燈片(Slideshow)是網頁上常見的一項功能,今日我們來看看W3Schools上的幻燈片教學。 W3Schools 幻燈片教學 幻燈片例子 簡化版幻燈片例子 視頻連結 B站 YouTube 幻燈片(S...
閱讀 2600·2021-11-15 11:38
閱讀 2618·2021-11-04 16:13
閱讀 17979·2021-09-22 15:07
閱讀 1013·2019-08-30 15:55
閱讀 3260·2019-08-30 14:15
閱讀 1663·2019-08-29 13:59
閱讀 3206·2019-08-28 18:28
閱讀 1575·2019-08-23 18:29