整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          前端開發(fā),CSS的常用套路附demo的效果實現(xiàn)與源碼

          前端開發(fā),CSS的常用套路附demo的效果實現(xiàn)與源碼)

          本文是筆者寫CSS時常用的套路。不論效果再怎么華麗,萬變不離其宗。

          1、交錯動畫

          有時候,我們需要給多個元素添加同一個動畫,播放后,不難發(fā)現(xiàn)它們會一起運動,一起結(jié)束,這樣就會顯得很平淡無奇。那么如何將動畫變得稍微有趣一點呢?很簡單,既然它們都是同一時刻開始運動的,那么讓它們不在同一時刻運動不就可以了嗎。如何讓它們不在同一時刻運動呢?注意到CSS動畫有延遲(delay)這一屬性。舉個栗子,比如有十個元素播放十個動畫,將第二個元素的動畫播放時間設(shè)定為比第一個元素晚0.5秒(也就是將延遲設(shè)為0.5秒),其他元素以此類推,這樣它們就會錯開來,形成一種獨特的視覺效果。

          這就是所謂的交錯動畫:通過設(shè)置不同的延遲時間,達到動畫交錯播放的效果。

          本demo地址:https://codepen.io/alphardex/pen/XWWWBmQ

          2、用JS分割文本

          還有一種經(jīng)常用到的玩法:用JS將句子或單詞分割成字母,并給每個字母加上不同延時的動畫,同樣也很華麗。

          本demo地址:https://codepen.io/alphardex/full/KKwvKGY一般我們都是從第一個元素開始交錯的。但如果要從中間元素開始交錯的話,就要給當前元素的延時各加上一個值,這個值就是中間元素的下標到當前元素的下標的距離(也就是下標之差的絕對值)與步長的乘積,即:delay + Math.abs(i - middle) * step,其中中間元素的下標middle=letters.filter(e=> e !=="").length / 2

          本demo地址:https://codepen.io/alphardex/full/eYYMYXJ所有有交錯特性的動畫都在這兒

          3、隨機粒子動畫

          說到隨機性,我們可以實現(xiàn)一種更瘋狂的效果:給幾百個粒子添加交錯動畫,并且交錯時間隨機,位置大小也都是隨機。如此一來我們就能用純CSS模擬出下雪的效果。又到了白色相簿的季節(jié)呢~為什么你寫CSS這么熟練???

          本demo地址:https://codepen.io/alphardex/full/dyPorwJ

          偽類和偽元素

          4、偽類

          HTML元素的狀態(tài)是可以動態(tài)變化的。舉個栗子,當你的鼠標懸浮到一個按鈕上時,按鈕就會變成“懸浮”狀態(tài),這時我們就可以利用偽類:hover來選中這一狀態(tài)的按鈕,并對其樣式進行改變。:hover是筆者最最常用的一個偽類。還有一個很常用的偽類是:nth-child,用于選中元素的某一個子元素。其他的類似:focus、:focus-within等也有一定的使用。本demo地址:https://codepen.io/alphardex/pen/pooYKVa

          5、絕對定位實現(xiàn)多重邊框

          誰規(guī)定按鈕只能有一套邊框的?利用絕對定位和padding,我們可以給按鈕做出3套大小不一的邊框來,這樣效果更炫了。

          本demo地址:https://codepen.io/alphardex/full/ZEYXomW

          6、偽元素

          簡而言之,偽元素就是在原先的元素基礎(chǔ)上插入額外的元素,而且這個元素不充當HTML的標簽,這樣就能保持HTML結(jié)構(gòu)的整潔。我們知道每個元素都有::before和::after這兩個偽元素,也就是說每個元素都提供了3個矩形(元素本身1個,偽元素2個)來供我們進行形狀的繪制。現(xiàn)在又有了clip-path這個屬性,幾乎任意的形狀都可以被繪制出來,全憑你的想象力上面的動圖是條子劃過文本的動畫,條子就是每個文本所對應(yīng)的偽元素,對每個文本和其偽元素應(yīng)用動畫,就能達到上圖的效果了本demo地址:https://codepen.io/alphardex/pen/jOEOEzZ

          7、attr()生成文本內(nèi)容

          元素可以有自定義的屬性值,它的命名格式通常為data-*attr()用于獲取元素的這種自定義屬性值,并復(fù)制給其偽元素的content作為其生成的內(nèi)容利用這個函數(shù),我們可以用偽元素在原先文本的基礎(chǔ)上“復(fù)制”出另一個文本,如下圖所示。

          看上去有點亂糟糟的對吧?沒事,給它加上overflow: hidden,把多余的文本遮住。通過JS分割文本并應(yīng)用交錯動畫,就得到了如下的效果,這也是接下來本文要講的overflow障眼法。

          本demo地址:https://codepen.io/alphardex/full/wvBeXjd

          8、overflow障眼法

          之前有做過閃光按鈕的效果:鼠標懸浮按鈕上時一道光從左到右劃過去。筆者就用漸變來模擬那道光,通過transform: translateX()將其平移至右邊。

          但這樣明顯不對啊,這光為啥能被看見呢?不應(yīng)該把它給“擋”起來嗎?于是乎,給按鈕加上overflow: hidden,光在按鈕外的位置時就被隱藏起來了。

          這就是障眼法的力量:)本demo地址:https://codepen.io/alphardex/pen/eYYzXBZ更多障眼法可以看看這個作品,一次性看個夠XD

          9、兄弟選擇符定制表單元素

          提示:這里最好將input作為label的子元素,這樣用戶點擊label時就能傳到input上默認的input太丑怎么辦?那就把它先抹掉,用appearance: none或opacity: 0都可以然后,利用兄弟選擇符~來定制和input相鄰的所有元素(+號也行,只不過只能選中最近的元素),例如可以用偽元素生成一個新的方框代替原先的input,利用偽類:checked和動畫來表示它被勾選后的狀態(tài),本質(zhì)上還是障眼法哦~

          本demo地址:https://codepen.io/alphardex/full/rNNPQwa

          CSS特性

          善用某些CSS特性,也可以為你的作品增色不少哦

          10、animation

          此處包括transition和transformCSS動畫可以說是利用CSS設(shè)計炫酷特效的最強法器,它幾乎貫穿了我的所有作品有人問我為什么我能想出這么多的動畫?筆者閱番百部,對常用的動畫技巧了如指掌,同樣那些酷炫的網(wǎng)站只要細心觀察,也會給筆者帶來很多設(shè)計上的靈感。一言以蔽之:只有多欣賞動畫,才能寫出好的動畫。

          11、border-radius

          為盒子添加圓角,經(jīng)常用來美化按鈕等組件如果設(shè)定為50%則是圓形,也很常用

          不規(guī)則的曲邊形狀

          調(diào)整多個頂點的border-radius可以做出不規(guī)則的曲邊形狀

          本demo地址:https://codepen.io/alphardex/full/abbWOPR

          12、box-shadow

          為盒子添加陰影,增加盒子的立體感,可以多層疊加,并且會使陰影更加絲滑

          本demo地址:https://codepen.io/alphardex/full/QWwwwpp

          13、遮罩

          如果給box-shadow的擴張半徑設(shè)定足夠大的值,可以用它來遮住背景,而無需額外的div元素

          本demo地址:https://codepen.io/alphardex/full/BaaKvVZ

          14、內(nèi)發(fā)光

          注意到box-shadow還有個inset,用于盒子內(nèi)部發(fā)光利用這個特性我們可以在盒子內(nèi)部的某個范圍內(nèi)設(shè)定顏色,做出一個新月形

          再加點動畫和濾鏡效果,“猩紅之月”閃亮登場!

          本demo地址:https://codepen.io/alphardex/full/eYmGEGp

          text-shadow

          文本陰影,本質(zhì)上和box-shadow相同,只不過是相對于文本而言,常用于文本發(fā)光,也可通過多層疊加來制作霓虹文本和偽3D文本等效果

          15、發(fā)光文本

          本demo地址:https://codepen.io/alphardex/full/Exxodoq

          16、霓虹文本

          本demo地址:https://codepen.io/alphardex/full/rNNwmZz

          17、偽3D文本

          本demo地址:https://codepen.io/alphardex/full/QWWavvx

          18、background-clip:text

          能將背景裁剪成文字的前景色,常用來和color: transparent配合生成漸變文本

          本demo地址:https://codepen.io/alphardex/full/QWwveZG

          gradient

          漸變可以作為背景圖片的一種,具有很強的色彩效果,甚至可以用來模擬光

          19、linear-gradient

          線性漸變是筆者最常用的漸變

          這個作品用到了HTML的dialog標簽,漸變背景,動畫以及overflow障眼法,細心的你看出來了嗎:)本demo地址:https://codepen.io/alphardex/full/eYYxzBm

          20、radial-gradient

          徑向漸變常用于生成圓形背景,上面例子中Snow的背景就是一個橢圓形的徑向漸變此外,由于背景可以疊加,我們可以疊加多個不同位置大小的徑向漸變來生成圓點群,再加上動畫就產(chǎn)生了一種微粒效果,無需多余的div元素。

          本demo地址:https://codepen.io/alphardex/full/OJPvMGx

          21、conic-gradient

          圓錐漸變可以用于制作餅圖

          用一個偽元素疊在餅圖上面,并將content設(shè)為某個值(這個值通過CSS變量計算出來),就能制作出度量計的效果,障眼法又一次完成了它的使命。

          本demo地址:https://codepen.io/alphardex/full/BaydVvQ

          filter

          PS里的濾鏡,玩過的都懂,blur最常用

          22、backdrop-filter

          對背景應(yīng)用濾鏡,產(chǎn)生毛玻璃的效果

          本demo地址:https://codepen.io/alphardex/full/pooQMVp

          23、mix-blend-mode

          PS里的混合模式,常用于文本在背景下的特殊效果以下利用濾色模式(screen)實現(xiàn)文本視頻蒙版效果

          本demo地址:https://codepen.io/alphardex/full/wvvLYpV

          24、clip-path

          PS里的裁切,可以制作各種不規(guī)則形狀。如果和動畫結(jié)合也會相當有意思。

          本demo地址:https://codepen.io/alphardex/full/ZEEBRrq

          25、-webkit-box-reflect

          投影效果,不怎么常用,適合立體感強的作品。

          本demo地址:https://codepen.io/alphardex/full/ExaZgxp

          26、web animations

          雖然這并不是一個CSS特性,但是它經(jīng)常用于完成那些CSS所做不到的事情那么何時用它呢?當CSS動畫中有屬性無法從CSS中獲取時,自然就會使用到它了

          跟蹤鼠標的位置

          目前CSS還尚未有獲取鼠標位置的API,因此考慮用JS來進行通過查閱相關(guān)的DOM API,發(fā)現(xiàn)在監(jiān)聽鼠標事件的API中,可通過e.clientX和e.clientY來獲得鼠標當前的位置既然能夠獲取鼠標的位置,那么跟蹤鼠標的位置也就不是什么難事了:通過監(jiān)聽mouseenter和mouseleave事件,來獲取鼠標出入一個元素時的位置,并用此坐標來當作鼠標的位移距離,監(jiān)聽mousemove事件,來獲取鼠標在元素上移動時的位置,同樣地用此坐標來當作鼠標的位移距離,這樣一個跟蹤鼠標的效果就實現(xiàn)了。

          本demo地址:https://codepen.io/alphardex/full/OJPmQGz

          CSS Houdini

          CSS Houdini是CSS的底層API,它使我們能夠通過這套接口來擴展CSS的功能

          讓漸變動起來

          目前來說,我們無法直接給漸變添加動畫,因為瀏覽器不理解要改變的值是什么類型這時,我們就可以利用CSS.registerProperty()來注冊我們的自定義變量,并聲明其語法類型(syntax)為顏色類型<color>,這樣瀏覽器就能理解并對顏色應(yīng)用插值方法來進行動畫還記得上文提到的圓錐漸變conic-gradient()嗎?既然它可以用來制作餅圖,那么我們能不能讓餅圖動起來呢?答案是肯定的,定義三個變量:--color1、--color2和--pos,其中--pos的語法類型為長度百分比<length-percentage>,將其從0變?yōu)?00%,餅圖就會順時針旋轉(zhuǎn)出現(xiàn)。

          利用絕對定位和層疊上下文,我們可以疊加多個從小到大的餅圖,再給它們設(shè)置不同的顏色,應(yīng)用交錯動畫,就有了下面這個炫麗的效果。

          本demo地址:https://codepen.io/alphardex/full/RwNxpXQ

          27、彩蛋

          將交錯動畫和偽類偽元素結(jié)合起來寫出來的慎重勇者風格的菜單本demo地址:https://codepen.io/alphardex/full/ExavZdV


          最后:

          恭喜你將本文讀完了。不論是過了一場視覺盛宴也好,還是學到了不少東西也好,還是直接從書簽?zāi)菍?dǎo)航到這里也好(笑),CSS的力量始終超乎你的想象。只要敢于創(chuàng)作,你就是這個世界的神。


          源自:https://juejin.im/post/5e070cd9f265da33f8653f0

          聲明:文章著作權(quán)歸作者所有,如有侵權(quán),請聯(lián)系小編刪除。

           最近我們公司做了一個網(wǎng)站,需要轉(zhuǎn)載如 “騰訊短視頻、愛奇藝、優(yōu)酷、百度好看視頻、鳳凰視頻”的短視頻,下載這些視頻時發(fā)現(xiàn)這些視頻網(wǎng)站都有自已的防下載法門,是直接下載不了的。

            從網(wǎng)上找資料,分析這些解決方法,不外乎是:視頻緩沖法;專用軟件下載法,但這兩種方法似乎都有弊端,不能令人滿意。視頻緩沖法對于FLV、SWF等傳通流媒體格式比較有用,但對于qlv(騰迅)、 qsv(愛奇藝)、kuv(優(yōu)酷)等專用格式不起效果。當然使用專用軟件可以下載這些知名網(wǎng)站視頻,但是的需要成為會員,交納會費才能使用。對于手頭緊的人來說,顯然這不是好的選項,何況對于流連互聯(lián)網(wǎng)幾十年的網(wǎng)蟲來說,解決不了這個問題,也有些打臉。

            抱著不到黃河不死心的精神,潛心研究了兩天,終于還是讓我找到了一種完美的解決方案,分享給大家,你要是用心了這種方法就不會讓你感到高深,如果你心浮氣燥就會讓你感到很難。

            本方案需要分兩種情況完成。

          情形一:用瀏覽器下載知名視頻網(wǎng)站特別專用格式視頻

          第一步:用360瀏覽器或谷哥瀏覽器下載qlv(騰迅)、 qsv(愛奇藝)、kuv(優(yōu)酷)等專用格式視頻。具體作法如下:
          1、打開360瀏覽器或谷哥瀏覽器,再打開騰訊視頻網(wǎng)站,搜索一個自已想要的視頻,比如:https://v.qq.com/x/page/y31424ef9sq.html(五臺山下雪了),從地址欄中復(fù)制這個地址。

          第二步:點擊瀏覽器的右上角菜單(三型圖標)找到“工具”里的“開發(fā)人員工具”

          第三步:設(shè)置虛擬手機模式

          1、點擊下側(cè)開發(fā)人工具中的“手機模式”按鈕,把屏幕切換成手機模式。

          2、選擇手機類型

          3、手機界面模擬顯示視頻

          。在地址欄中光標移到最后按下回車或按下CTRL+F5,刷新緩沖,讓視頻界面顯示成手機顯示界面。

          第四步:下載視頻

          1、 獲取視頻信息設(shè)置:選擇network和media

          2、點擊播放視頻,等待所有的廣告播放完成后,從工具箱中,查看最后一個視頻。

          3、 點擊最后一個視頻,就會在彈出新窗口播放此視頻,這個視頻的格式是MP4格式

          4、 點擊窗口右下角的菜單,找到下載命令,下載視頻。很快就可以下載完成。

          說明:如果視頻很大下載不了,可以直接把地址欄中的視頻地址復(fù)制到迅雷中下載。

          情形二:用稞麥綜合視頻下載(xmlbar)下載知名視頻網(wǎng)站視頻

          在使用過程中,我發(fā)現(xiàn)“百度好看視頻、鳳凰視頻”用以下的方法是下載不了的,于是我又找到一種工具“稞麥綜合視頻下載”,且是免費的,可以下載這兩類視頻。

          第一步:下載“稞麥綜合視頻下載”安裝

          第二步:復(fù)制“百度好看視頻、鳳凰視頻”的地址。

          第三步:打開“稞麥綜合視頻下載”軟件,在地址欄中粘入以下的視頻地址,按下下載按鈕后,就會在把視頻的截圖和視頻下載了。



          寫CSS的常用套路

          前言

          本文是筆者寫CSS時常用的套路。不論效果再怎么華麗,萬變不離其宗。

          交錯動畫



          有時候,我們需要給多個元素添加同一個動畫,播放后,不難發(fā)現(xiàn)它們會一起運動,一起結(jié)束,這樣就會顯得很平淡無奇。

          那么如何將動畫變得稍微有趣一點呢?很簡單,既然它們都是同一時刻開始運動的,那么讓它們不在同一時刻運動不就可以了嗎。如何讓它們不在同一時刻運動呢?注意到CSS動畫有延遲(delay)這一屬性。舉個例子,比如有十個元素播放十個動畫,將第二個元素的動畫播放時間設(shè)定為比第一個元素晚0.5秒(也就是將延遲設(shè)為0.5秒),其他元素以此類推,這樣它們就會錯開來,形成一種獨特的視覺效果。



          這就是所謂的交錯動畫:通過設(shè)置不同的延遲時間,達到動畫交錯播放的效果。

          本demo:Staggered Wave Loading

          訪問地址:https://codepen.io/alphardex/pen/XWWWBmQ

          用JS分割文本

          還有一種經(jīng)常用到的玩法:用JS將句子或單詞分割成字母,并給每個字母加上不同延時的動畫,同樣也很華麗



          本demo地址:Staggered LandIn Text

          訪問地址:https://codepen.io/alphardex/full/KKwvKGY

          不同位置的交錯動畫

          一般我們都是從第一個元素開始交錯的。但如果要從中間元素開始交錯的話,就要給當前元素的延時各加上一個值,這個值就是中間元素的下標到當前元素的下標的距離(也就是下標之差的絕對值)與步長的乘積



          本demo地址:Reveal Text

          訪問地址:https://codepen.io/alphardex/full/eYYMYXJ

          隨機粒子動畫

          說到隨機性,我們可以實現(xiàn)一種更瘋狂的效果:給幾百個粒子添加交錯動畫,并且交錯時間隨機,位置大小也都是隨機。如此一來我們就能用純CSS模擬出下雪的效果。



          本demo地址:Snow (Pure CSS)

          訪問地址:https://codepen.io/alphardex/full/dyPorwJ

          偽類和偽元素

          偽類



          HTML元素的狀態(tài)是可以動態(tài)變化的。舉個例子,當你的鼠標懸浮到一個按鈕上時,按鈕就會變成“懸浮”狀態(tài),這時我們就可以利用偽類:hover來選中這一狀態(tài)的按鈕,并對其樣式進行改變。

          :hover是筆者最最常用的一個偽類。還有一個很常用的偽類是:nth-child,用于選中元素的某一個子元素。其他的類似:focus、:focus-within等也有一定的使用。

          本demo地址:Button Hover Border Stroke With Float Text

          絕對定位實現(xiàn)多重邊框

          誰規(guī)定按鈕只能有一套邊框的?利用絕對定位和padding,我們可以給按鈕做出3套大小不一的邊框來,這樣效果更炫了



          本demo地址:Button Hover Multiple Border Stroke

          https://codepen.io/


          主站蜘蛛池模板: 男人免费视频一区二区在线观看| 国产亚洲一区二区手机在线观看| 理论亚洲区美一区二区三区| 成人精品一区二区户外勾搭野战| 香蕉久久av一区二区三区| 亚洲av乱码一区二区三区| 无码人妻一区二区三区免费| 久久久久无码国产精品一区| 精品人妻一区二区三区四区| 亚洲国产精品乱码一区二区| 性色AV 一区二区三区| 一区二区三区视频免费观看| 精品一区二区三区免费观看| 国产综合无码一区二区辣椒 | 久久国产精品一区| 国模私拍福利一区二区| 伊人久久精品无码av一区| 亚洲啪啪综合AV一区| 美女视频一区二区三区| 国产精品99无码一区二区| 日韩人妻无码一区二区三区久久99| 精品久久久久一区二区三区| 无码人妻av一区二区三区蜜臀 | 国精产品一区一区三区免费视频| 一区二区三区免费电影| 国产丝袜无码一区二区三区视频| 大香伊蕉日本一区二区| 日韩少妇无码一区二区三区| 精品国产福利一区二区| 全国精品一区二区在线观看| 日本免费电影一区| 综合一区自拍亚洲综合图区| 亚洲一区在线免费观看| 无码中文人妻在线一区二区三区| 日韩精品乱码AV一区二区| 无码人妻视频一区二区三区 | 高清一区二区三区| 精品无码国产AV一区二区三区| 在线电影一区二区| 波多野结衣一区二区三区高清av| 国产aⅴ一区二区三区|