内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

強(qiáng)大的CSS:使用“變量種子計(jì)數(shù)器”擴(kuò)展動(dòng)畫(huà)更多可能性-創(chuàng)新互聯(lián)

一、不是所有CSS屬性都能動(dòng)畫(huà)

經(jīng)常和CSS打交道的人肯定都知道,不是所有的CSS屬性都能使用 animation 屬性實(shí)現(xiàn)動(dòng)畫(huà)效果,最典型的例子就是 background-image 漸變。

在王屋等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè),王屋網(wǎng)站建設(shè)費(fèi)用合理。

一個(gè)典型的線性漸變是由角度,顏色和位置組成,例如:

.gradient {
    background-image: linear-gradient(45deg, red 50%, blue 50%);
}

其中無(wú)論是角度( 45deg ),顏色( red blue )還是位置( 50% )單獨(dú)作為屬性者都是可以動(dòng)畫(huà)過(guò)渡的,但是合在一起作為漸變背景的時(shí)候是無(wú)法產(chǎn)生過(guò)渡效果的,因?yàn)? background-image 的語(yǔ)義是圖片。

那有沒(méi)有什么辦法可以讓背景圖片也能實(shí)現(xiàn)動(dòng)畫(huà)過(guò)渡呢,至少CSS漸變可以實(shí)現(xiàn)?[圖片上傳失敗...(image-e6ee4e-1558437352811)]

經(jīng)過(guò)我的研究和探索,找到了一種解決方案,雖稱不上百分百完美,但足夠應(yīng)用于項(xiàng)目中,能讓以前很多不支持CSS動(dòng)畫(huà)的屬性,也支持原生的動(dòng)畫(huà)效果。

二、變量種子計(jì)數(shù)器

Chrome等瀏覽器(不包括Safari)有個(gè)特性,就是當(dāng)我們使用 @keyframes 定義關(guān)鍵幀的時(shí)候,關(guān)鍵幀里面設(shè)置的屬性也是會(huì)運(yùn)行的(幾年前改變的,原先不是),典型的案例就是 content 屬性與內(nèi)容變化。

例如實(shí)現(xiàn)一個(gè)“正在加載中…”打點(diǎn)效果可以下面CSS和HTML:

dot::before {
    content: '...';
    position: absolute;
    animation: dot 3s infinite step-start both;
}
dot:after {
    content: '...';
    color: transparent;
}
@keyframes dot {
    33% { content: '.'; }
    66% { content: '..'; }
}
<button>正在加載中<dot></dot></button>

實(shí)時(shí)效果如下:

正在加載中


根據(jù)我的測(cè)試發(fā)現(xiàn),不僅普通的CSS屬性可以在CSS動(dòng)畫(huà)關(guān)鍵幀中運(yùn)行,CSS自定義屬性(CSS變量)也可以在CSS動(dòng)畫(huà)關(guān)鍵幀中運(yùn)行。例如:

@keyframes var {
    33% { --someVar: 33%; }
    66% { --someVar: 66%; }
}

這種特性就非常有啟發(fā),如果我們某一個(gè)CSS屬性值是基于這個(gè) --someVar 變量構(gòu)成的,那豈不是就算這個(gè)屬性值不支持CSS動(dòng)畫(huà),我只要讓每一個(gè)百分比值的間隙足夠的小,不也能夠?qū)崿F(xiàn)一個(gè)平滑的動(dòng)畫(huà)效果?

具體做法就是,把CSS動(dòng)畫(huà)關(guān)鍵幀從 0%-100% 分成101份,然后每一份從0開(kāi)始依次計(jì)數(shù),就像是個(gè)計(jì)數(shù)器一樣,然后把這個(gè)計(jì)數(shù)器分配給一個(gè)特定的CSS變量。最終我們可以得到一個(gè)如下所示的CSS動(dòng)畫(huà)“變量種子計(jì)數(shù)器”。

@keyframes seed {
    0%{--seed:0}1%{--seed:1}2%{--seed:2}3%{--seed:3}4%{--seed:4}5%{--seed:5}6%{--seed:6}7%{--seed:7}8%{--seed:8}9%{--seed:9}10%{--seed:10}11%{--seed:11}12%{--seed:12}13%{--seed:13}14%{--seed:14}15%{--seed:15}16%{--seed:16}17%{--seed:17}18%{--seed:18}19%{--seed:19}20%{--seed:20}21%{--seed:21}22%{--seed:22}23%{--seed:23}24%{--seed:24}25%{--seed:25}26%{--seed:26}27%{--seed:27}28%{--seed:28}29%{--seed:29}30%{--seed:30}31%{--seed:31}32%{--seed:32}33%{--seed:33}34%{--seed:34}35%{--seed:35}36%{--seed:36}37%{--seed:37}38%{--seed:38}39%{--seed:39}40%{--seed:40}41%{--seed:41}42%{--seed:42}43%{--seed:43}44%{--seed:44}45%{--seed:45}46%{--seed:46}47%{--seed:47}48%{--seed:48}49%{--seed:49}50%{--seed:50}51%{--seed:51}52%{--seed:52}53%{--seed:53}54%{--seed:54}55%{--seed:55}56%{--seed:56}57%{--seed:57}58%{--seed:58}59%{--seed:59}60%{--seed:60}61%{--seed:61}62%{--seed:62}63%{--seed:63}64%{--seed:64}65%{--seed:65}66%{--seed:66}67%{--seed:67}68%{--seed:68}69%{--seed:69}70%{--seed:70}71%{--seed:71}72%{--seed:72}73%{--seed:73}74%{--seed:74}75%{--seed:75}76%{--seed:76}77%{--seed:77}78%{--seed:78}79%{--seed:79}80%{--seed:80}81%{--seed:81}82%{--seed:82}83%{--seed:83}84%{--seed:84}85%{--seed:85}86%{--seed:86}87%{--seed:87}88%{--seed:88}89%{--seed:89}90%{--seed:90}91%{--seed:91}92%{--seed:92}93%{--seed:93}94%{--seed:94}95%{--seed:95}96%{--seed:96}97%{--seed:97}98%{--seed:98}99%{--seed:99}100%{--seed:100}
}

上面這段 @keyframes seed{} 相關(guān)CSS代碼就是一個(gè)可以無(wú)限使用的“動(dòng)畫(huà)種子”,無(wú)論是那些原本支持CSS動(dòng)畫(huà)的屬性,還是不支持CSS動(dòng)畫(huà)的屬性,只要它的屬性值是與數(shù)值相關(guān)的,都能夠借助這個(gè)“動(dòng)畫(huà)種子”實(shí)現(xiàn)動(dòng)畫(huà)效果。

舉個(gè)漸變旋轉(zhuǎn)的例子

例如一開(kāi)始那個(gè)線性漸變的例子,我們可以讓漸變旋轉(zhuǎn)角度和我們“動(dòng)畫(huà)種子”中的 --seed 變量相關(guān)聯(lián),配合 animation 屬性就能實(shí)現(xiàn)漸變旋轉(zhuǎn)的效果了:

.gradient {
    width: 150px; height: 150px;
    background-image: linear-gradient(calc(3.6deg * var(--seed)), red 50%, blue 50%);
    animation: seed 1s linear infinite;
}
<div class="gradient"></div>

三、更進(jìn)一步的動(dòng)畫(huà)效果

配合“變量種子計(jì)數(shù)器”,我們最實(shí)現(xiàn)過(guò)去很難實(shí)現(xiàn)的密集型背景圖形動(dòng)畫(huà)效果,例如下面這張平鋪的圈圈放大效果:

強(qiáng)大的CSS: 使用“變量種子計(jì)數(shù)器”擴(kuò)展動(dòng)畫(huà)更多可能性

文章題目:強(qiáng)大的CSS:使用“變量種子計(jì)數(shù)器”擴(kuò)展動(dòng)畫(huà)更多可能性-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.rwnh.cn/article26/johjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站收錄、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、ChatGPT、云服務(wù)器、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
洛隆县| 资溪县| 永宁县| 桂阳县| 马尔康县| 勃利县| 汉阴县| 永州市| 卢氏县| 忻州市| 孟村| 精河县| 邯郸县| 通化市| 临沂市| 衡南县| 凌源市| 黔南| 西充县| 德保县| 三原县| 文安县| 柳州市| 湘潭县| 河源市| 五原县| 巴南区| 棋牌| 长丰县| 南江县| 新宾| 永康市| 来安县| 嘉定区| 雅安市| 弥渡县| 新邵县| 贺兰县| 资源县| 白银市| 阿巴嘎旗|