這篇文章帶大家了解CSS3 clip-path(裁剪路徑),介紹一下如何利用 clip-path 實現動態區域裁剪,希望對大家有所幫助!
今天逛CodePen,看到了這樣一個很有意思的效果:
##這個效果還是有一些值得探討學習的點,下面我們一起來看看。 如何實現這樣一個類似的效果? 首先,想一想,如果讓你去實現上面的效果,你會怎麼做呢? 這裡我簡單羅列一些可能的方法:CodePen Demo -- Material Design Menu By Bennett Feely
網址:https://codepen.io/bennettfeely/pen/fHdFb
- 陰影box-shadow
- 漸層radial-gradient
- #縮放transform: scale()
box-shadow,程式碼大致如下:
<div class="g-container"> <div class="g-item"></div> </div>
.g-container { position: relative; width: 400px; height: 300px; overflow: hidden; } .g-item { position: absolute; width: 48px; height: 48px; border-radius: 50%; background: #fff; top: 20px; left: 20px; box-shadow: 0 0 0 0 #fff; transition: box-shadow .3s linear; &:hover { box-shadow: 0 0 0 420px #fff; } }核心就在於:
- #外層一個設定了
overflow: hideen
的遮罩
- 內層元素hover 的時候,實作一個
box-shadow : 0 0 0 0 #fff
到
box-shadow: 0 0 0 420px #fff的變化
- 當我們的滑鼠離開圓形的時候,整個動畫就開始反向進行了,白色區域開始消失,如果我們要進行按鈕操作,是無法完成的
- #隱藏在動畫展開後的矩形內的元素,不容易放置
box-shadow 看著雖好,但是只能放棄。
上述Demo 的程式碼-- CodePen Demo -- box-shadow zoom in animation網址:https://codepen.io/Chokcoco/pen/jOLRQNy#使用漸層radial-gradient 實作下面我們使用徑向漸層
radial-gradient 加CSS @property,也可以還原上述效果:
<div class="g-container"></div>
@property --size { syntax: '<length>'; inherits: false; initial-value: 24px; } .g-container { position: relative; width: 400px; height: 300px; overflow: hidden; background: radial-gradient(circle at 44px 44px, #fff 0, #fff var(--size), transparent var(--size), transparent 0); transition: --size .3s linear; &:hover { --size: 450px; } }我們透過控制徑向漸層的動畫效果,在hover 的時候,讓原本只是一個小圓背景,變成一個大圓背景,效果如下:
- 由於是背景的變化,所以滑鼠不需要hover 到小圓上,只需要進入div 的範圍,動畫就會開始,這顯然是不對的
- 和第一種
box-shadow
的方法類似,隱藏在白色之下的導航元素的DOM 不好放置
上述Demo 的程式碼-- CodePen Demo -- radial-gradient zoom in animation網址:https://codepen.io/Chokcoco/pen/RwZOqWbemmm,還有一個方法,透過縮放
transform: scale(),也會存一定問題,這裡不繼續展開。
- 滑鼠要hover 到圓上,才能開始動畫,並且,滑鼠可以在展開後的範圍內自由移動,且不會收回動畫效果
- 動畫展開後,裡面的DOM 的放置,不能太麻煩,能不借助Javascript 去控制裡面內容的顯示隱藏最好
動態的區域裁切。
在我的這篇文章中 --如何不使用 overflow: hidden 實作 overflow: hidden? ,介紹了 CSS 中幾種裁切元素的方式,而其中,最適合利用在這個效果的,就是 -- clip-path。
利用clip-path,可以非常好的實現,動態裁剪的功能,並且,程式碼也非常簡單:
<div class="g-container"></div>
.g-container { position: relative; width: 400px; height: 300px; overflow: hidden; transition: clip-path .3s linear; clip-path: circle(20px at 44px 44px); background: #fff; &:hover { clip-path: circle(460px at 44px 44px); } }我們只需要利用
clip -path,在最開始的時候,將一個矩形div,利用
clip-path: circle(20px at 44px 44px) 裁剪成一個圓,當hover 的時候,擴大裁剪圓的半徑到整個矩形範圍即可。
这样,我们就能完美的实现题图的效果,并且,内置的 DOM 元素,直接写进这个 div 内部即可。
<div class="g-container"> <ul> <li>11111</li> <li>22222</li> <li>33333</li> <li>44444</li> </ul> </div>
效果如下:
CodePen Demo -- clip-path zoom in animation
网址:https://codepen.io/Chokcoco/pen/yLorrRm
很有意思的一个技巧,利用 clip-path 实现动态区域裁剪,希望大家能够掌握。
最后
好了,本文到此结束,希望本文对你有所帮助 :)
(学习视频分享:css视频教程)
以上是CSS3 clip-path屬性實戰:動態區域裁剪的詳細內容。更多資訊請關注PHP中文網其他相關文章!

两种方法:1、利用display属性,只需给元素添加“display:none;”样式即可。2、利用position和top属性设置元素绝对定位来隐藏元素,只需给元素添加“position:absolute;top:-9999px;”样式。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

自适应布局又称“响应式布局”,是指可以自动识别屏幕宽度、并做出相应调整的网页布局;这样的网页能够兼容多个不同的终端,而不是为每个终端做一个特定的版本。自适应布局是为解决移动端浏览网页而诞生的,能够为使用不同终端的用户提供很好的用户体验。

实现方法:1、使用“:active”选择器选中鼠标点击图片的状态;2、使用transform属性和scale()函数实现图片放大效果,语法“img:active {transform: scale(x轴放大倍数,y轴放大倍数);}”。

css3中的动画效果有变形;可以利用“animation:动画属性 @keyframes ..{..{transform:变形属性}}”实现变形动画效果,animation属性用于设置动画样式,transform属性用于设置变形样式。

在css3中,可以利用“animation-timing-function”属性设置动画旋转速度,该属性用于指定动画将如何完成一个周期,设置动画的速度曲线,语法为“元素{animation-timing-function:速度属性值;}”。

本篇文章带大家一起深入了解一下CSS3中的新特性::target-text 选择器,聊聊该选择器的作用和使用方法,希望对大家有所帮助!

css3线性渐变可以实现三角形;只需创建一个45度的线性渐变,设置渐变色为两种固定颜色,一个是三角形的颜色,另一个为透明色即可,语法“linear-gradient(45deg,颜色值,颜色值 50%,透明色 50%,透明色 100%)”。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),