這篇文章給大家分享的是有關CSS怎么實現(xiàn)兩個球相交的粘粘效果的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
為石棉等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及石棉網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、做網(wǎng)站、石棉網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
這是一個純粹利用CSS所做出來的效果,這個效果說穿了就是一個圖像處理的原理,做法跟Photoshop里頭的幾乎一模一樣,只是一個用圖層和色版來制作,一個則是用CSS(把div當成圖層思考就好了)。
從PhotoShop開始
一開始我們來玩Photoshop,會比直接寫CSS來得容易理解(沒有Photoshop的人也沒關系,看完說明也就懂了),首先我們新增兩個圖層,一個里頭放上紅色的小球,另外一個里頭放上黑色的大球。
接著我們使用高斯模糊的濾鏡,分別把小紅球和大黑球模糊。
再來我們新增一個“亮度與對比”的調(diào)整圖層,勾選使用舊版,然后把對比數(shù)值往上拉,你就會看到神奇的現(xiàn)象。
拉到邊緣不再模糊之后,你就可以用鼠標嘗試著把紅球移動,就會發(fā)現(xiàn)紅球與黑球交界的地方變成粘粘的效果心,這就是我們要做的效果!
就這樣,你已經(jīng)知道如何用Photoshop來制作,同理,CSS也是用同樣的方法,只是把圖層換成了div而已,就這么簡單。
CSS效果
首先我在HTML里頭,放上一個class為redball的div當作紅球,class為blackball的是黑球,這就是剛剛在PhotoShop里頭的兩個圖層,接著在最外圍放上一個class為effect的div,這就是我們的調(diào)整圖層,完成后HTML代碼的長相應該是這樣:
<div class="effect"> <div class="blackball"></div> <div class="redball"></div> </div>
只要對blackball和redball加入模糊的濾鏡,對effect加入對比的濾鏡,就能夠達到Photoshop里面的特效,而模糊的濾鏡必須使用filter:blur(數(shù)值),對比則使用filter:contrast(數(shù)值)。
CSS的長相會長這樣:
.effect{ width:100%; height:100%; padding-top:50px; filter:contrast(10); background:#fff; } .blackball{ width:100px; height:100px; background:black; padding:10px; border-radius:50%; margin:0 auto; z-index:1; filter:blur(5px); } .redball{ width:60px; height:60px; background:#f00; padding:10px; border-radius:50%; position:absolute; top:70px; left:50px; z-index:2; filter:blur(5px) ; animation:rball 6s infinite; }
忽略CSS里頭那些定位數(shù)值,里頭blur的數(shù)值設為5px,contrast的數(shù)值設為10,就可以看到紅求黑球粘在一起了,至于該怎么讓他們動起來呢?就要使用CSS3的animation,animation的程序如下:
@keyframes rball{ 0%,100%{ left:35px; width:60px; height:60px; } 4%,54%{ width:60px; height:60px; } 10%,60%{ width:50px; height:70px; } 20%,70%{ width:60px; height:60px; } 34%,90%{ width:70px; height:50px; } 41%{ width:60px; height:60px; } 50%{ left:calc(100% - 95px); width:60px; height:60px; } }
這里的keyframe寫了很多,因為要讓紅球進入黑球時,水平方向會被壓縮一下,然后再離開黑球的時候,水平方向會被拉長,如此一來才會更像有粘性的感覺,為了測試這個效果,可真是煞費我的苦心呀?。ú贿^這里有個要注意的地方,由于位置上會自動去計算,所以要測試的話,最外層的effect寬度記得設為320px)
完成紅球之后,要讓兩顆藍色球合在一起再分開,也是同樣的原理,下方列出兩顆藍色球的CSS,比較需要注意的地方是我讓藍色球合體之后會變大一些,分開的時候也會拉長。
.blueball1{ width:80px; height:80px; background:#00f; padding:10px; border-radius:50%; position:absolute; top:230px; left:0; z-index:2; filter:blur(8px) ; animation:bball1 6s infinite; } .blueball2{ width:80px; height:80px; background:#00f; padding:10px; border-radius:50%; position:absolute; top:230px; left:240px; z-index:2; filter:blur(8px) ; animation:bball2 6s infinite; } @keyframes bball1{ 0%,100%{ left:0; top:230px; width:80px; height:80px; } 20%{ top:230px; width:80px; height:80px; } 85%{ top:230px; left:75px; width:90px; height:70px; } 90%{ top:228px; width:75px; height:85px; } 50%{ top:215px; left:110px; width:110px; height:110px; } } @keyframes bball2{ 0%,100%{ left:240px; top:230px; width:80px; height:80px; } 20%{ top:230px; width:80px; height:80px; } 85%{ top:230px; left:165px; width:90px; height:70px; } 90%{ top:228px; width:75px; height:85px; } 50%{ left:110px; top:215px; width:110px; height:110px; } }
就這樣,單純利用CSS就完成了一個粘粘的效果,坦白說我也不太清楚這個效果可以用在哪里,不過如果用在水底世界或一些loading的特效,應該是相當不賴的!
感謝各位的閱讀!關于“CSS怎么實現(xiàn)兩個球相交的粘粘效果”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
標題名稱:CSS怎么實現(xiàn)兩個球相交的粘粘效果
文章出自:http://jinyejixie.com/article46/ggeshg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、定制開發(fā)、網(wǎng)站改版、網(wǎng)站導航、搜索引擎優(yōu)化、品牌網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)