CSS制作圖形變形彈出效果的示例分享

彈出窗體是網(wǎng)頁(yè)常用的一個(gè)交互設(shè)計(jì),在這個(gè)注重交互動(dòng)畫體驗(yàn)的時(shí)代,網(wǎng)頁(yè)彈窗也可以來(lái)點(diǎn)新鮮的點(diǎn)子,比如今天分享的CSS 變形Modal Window。
當(dāng)用戶點(diǎn)擊按鈕時(shí),按鈕將會(huì)變成一個(gè)全屏的屏幕,然后再顯示內(nèi)容,整個(gè)展示過(guò)程流暢友好,也許你可以嘗試到你的新項(xiàng)目上。
演示頁(yè):http://codyhouse.co/gem/morphing-modal-window/
點(diǎn)擊“Fire Modal Window”按鈕后,按鈕將會(huì)慢慢變大,直到整個(gè)屏幕。下面來(lái)個(gè)GIF演示:
使用教程
本代碼兼容Chrome, Firefox, Safari, Opera,而IE需要9.0或以上版本(IE9+)
STEP 1: 創(chuàng)建HTML布局
- <section class="cd-section">
- <!-- section content here -->
- <div class="cd-modal-action">
- <a href="#0" class="btn" data-type="modal-trigger">Fire Modal Window</a> <!— 這是窗體按鈕 -->
- <span class="cd-modal-bg"></span>
- </div>
- <div class="cd-modal">
- <div class="cd-modal-content">
- <!— 這是窗體內(nèi)容區(qū)域 -->
- </div>
- </div>
- <a href="#0" class="cd-modal-close">Close</a> <!— 這是關(guān)閉按鈕 -->
- </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,你可以通過(guò)下面代碼來(lái)修改窗口大小。
- var btnRadius = $('.cd-modal-bg').width()/2,
- left = $('.cd-modal-bg').offset().left + btnRadius,
- top = $('.cd-modal-bg').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);
- }
相關(guān)文章
純CSS3繪制的中國(guó)聯(lián)通動(dòng)態(tài)logo圖標(biāo)樣式源碼
這是一款基于純CSS3繪制的中國(guó)聯(lián)通動(dòng)態(tài)logo圖標(biāo)樣式源碼,聯(lián)通logo標(biāo)志呈現(xiàn)旋轉(zhuǎn)效果,使用純css3繪制,沒(méi)有引入任何外部圖片元素2016-04-11使用CSS3編寫類似iOS中的復(fù)選框及帶開關(guān)的按鈕
這篇文章主要介紹了使用CSS3編寫類似iOS中的復(fù)選框及帶開關(guān)的按鈕,需要的朋友可以參考下2016-04-11- 這篇文章主要介紹了CSS的Sass框架中代碼注釋的編寫方法,Sass完全支持CSS基本的單行注釋與多行注釋,需要的朋友可以參考下2016-04-11
- 這篇文章主要介紹了CSS中的flex容器與flex屬性,是CSS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-04-08
基礎(chǔ)的CSS3彈性盒Flexbox布局使用實(shí)例
這篇文章主要介紹了基礎(chǔ)的CSS3彈性盒Flexbox布局使用實(shí)例,文中最后也提到了解決兼容性問(wèn)題的基本方法,需要的朋友可以參考下2016-04-08- 這篇文章主要介紹了CSS3的Flexbox布局的簡(jiǎn)明入門指南,Flexbox在"布局界"可謂風(fēng)光無(wú)限,近來(lái)Facebook開源的React Native也采用Flexbox來(lái)布局,需要的朋友可以參考下2016-04-08
- 本文將詳細(xì)介紹關(guān)于transform變形3D的內(nèi)容,但需以了解transform變形2D為基礎(chǔ)。3D變形涉及的屬性主要是transform-origin、transform、transform-style、perspective、persp2016-04-07
CSS3實(shí)現(xiàn)的頁(yè)面加載中動(dòng)畫過(guò)度特效源碼
是一款實(shí)現(xiàn)了點(diǎn)擊加載頁(yè)面后出現(xiàn)動(dòng)畫過(guò)度效果的代碼,本段代碼適應(yīng)于所有網(wǎng)頁(yè)使用,有需要的朋友們可以前來(lái)下載使用2016-04-07純CSS3簡(jiǎn)單的滑動(dòng)開關(guān)按鈕特效源碼
本源碼是一個(gè)使用純CSS3制作的滑動(dòng)開關(guān)按鈕特效的代碼。使用偽元素來(lái)制作外觀,制作出4種安卓樣式特效2016-04-07HTML5+CSS3圖片堆疊轉(zhuǎn)瀑布流布局特效源碼
HTML5+CSS3圖片堆疊轉(zhuǎn)瀑布流布局特效源碼是一款基于CSS3+HTML5實(shí)現(xiàn)的超酷風(fēng)格堆疊相片轉(zhuǎn)瀑布流網(wǎng)格布局動(dòng)畫效果代碼。需要的朋友前來(lái)下載源碼2016-04-07