首頁 > web前端 > css教學 > 主體

CSS製作圖形變形彈出的效果

不言
發布: 2018-06-26 10:29:43
原創
1938 人瀏覽過

這篇文章主要介紹了一個CSS製作圖形變形彈出效果的範例分享,彈出窗的大小可以使用jQuery來修改,需要的朋友可以參考下

彈出窗體是網頁常用的一個互動設計,在這個注重互動動畫體驗的時代,網頁彈跳窗也可以來點新鮮的點子,例如今天分享的CSS 變形Modal Window。
201647140715051.png (500×266)

當使用者點擊按鈕時,按鈕將會變成一個全螢幕的螢幕,然後再顯示內容,整個展示過程流暢友好,也許你可以嘗試到你的新項目上。

201647140742917.png (500×341)

示範頁:http://codyhouse.co/gem/morphing-modal-window/
點擊「Fire Modal Window」按鈕後,按鈕將會慢慢變大,直到整個螢幕。下面來個GIF示範:
201647140900986.gif (500×493)

使用教學

#本程式碼相容Chrome, Firefox, Safari, Opera,而IE需要9.0以上版本(IE9 )

STEP 1: 建立HTML佈局

<section class="cd-section">
<!-- section content here -->
<p class="cd-modal-action">
<a href="#0" class="btn" data-type="modal-trigger">Fire Modal Window</a> <!— 这是窗体按钮 -->
<span class="cd-modal-bg"></span>
</p>
<p class="cd-modal">
<p class="cd-modal-content">
<!— 这是窗体内容区域 -->
</p>
</p>
<a href="#0" class="cd-modal-close">Close</a> <!— 这是关闭按钮 -->
</section>
登入後複製

STEP 2: 新增CSS樣式

.cd-modal-action {   
position: relative;   
}   
.cd-modal-action .btn {   
width: 12.5em;   
height: 4em;   
background-color: #123758;   
border-radius: 5em;   
transition: color 0.2s 0.3s, width 0.3s 0s;   
}   
.cd-modal-action .btn.to-circle {   
width: 4em;   
color: transparent;   
transition: color 0.2s 0s, width 0.3s 0.2s;   
}   
.cd-modal-action .cd-modal-bg {   
position: absolute;   
top: 0;   
left: 50%;   
transform: translateX(-2em);   
width: 4em;   
height: 4em;   
background-color: #123758;   
border-radius: 50%;   
opacity: 0;   
visibility: hidden;   
transition: visibility 0s 0.5s;   
}   
.cd-modal-action .cd-modal-bg.is-visible {   
opacity: 1;   
visibility: visible;   
}
登入後複製

STEP 3: 新增jQuery

本程式碼使用了jQuery,你可以透過下面程式碼來修改視窗大小。

var btnRadius = $(&#39;.cd-modal-bg&#39;).width()/2,   
left = $(&#39;.cd-modal-bg&#39;).offset().left + btnRadius,   
top = $(&#39;.cd-modal-bg&#39;).offset().top + btnRadius - $(window).scrollTop(),   
scale = scaleValue(top, left, btnRadius, $(window).height(), $(window).width());   
function scaleValue( topValue, leftValue, radiusValue, windowW, windowH) {   
var maxDistHor = ( leftValue > windowW/2) ? leftValue : (windowW - leftValue),   
maxDistVert = ( topValue > windowH/2) ? topValue : (windowH - topValue);   
return Math.ceil(Math.sqrt( Math.pow(maxDistHor, 2) + Math.pow(maxDistVert, 2) )/radiusValue);   
}
登入後複製

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

CSS實作文字環繞圖片的效果

#使用css3 實作圓形進度列的方法

使用CSS3編寫灰階濾鏡來製作黑白照片效果

#####################################

以上是CSS製作圖形變形彈出的效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板