<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 變形--旋轉 rotate() 旋轉`rotate()`函數通過指定的角度參數使元素相對原點進行旋轉。它主要在二維空間內進行操作,設置一個角度值,用來指定旋轉的幅度。如果這個值為正值,元素相對原點中心順時針旋轉;如果這個值為負值,元素相對原點中心逆時針旋轉。 html代碼: ```html <div class="wrapper"> <div></div> </div> ``` CSS代碼: ```css .wrapper { width: 200px; height: 200px; border: 1px dotted red; margin: 100px auto; } .wrapper div { width: 200px; height: 200px; background: orange; -webkit-transform: rotate(45deg); transform: rotate(45deg); } ``` ### 變形--扭曲 skew() 扭曲`skew()`函數能夠讓元素傾斜顯示。它可以將一個對象以其中心位置圍繞著X軸和Y軸按照一定的角度傾斜。這與`rotate()`函數的旋轉不同,`rotate()`函數只是旋轉,而不會改變元素的形狀。`skew()`函數不會旋轉,而只會改變元素的形狀。 `Skew()`具有三種情況: 1. `skew(x,y)`使元素在水平和垂直方向同時扭曲(X軸和Y軸同時按一定的角度值進行扭曲變形), 第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則值為0,也就是Y軸方向上無斜切。 2. `skewX(x)`僅使元素在水平方向扭曲變形(X軸扭曲變形) 3. `skewY(y)`僅使元素在垂直方向扭曲變形(Y軸扭曲變形) html代碼: ```html <div class="wrapper"> <div>我變成平形四邊形</div> </div> ``` CSS代碼: ```css .wrapper { width: 300px; height: 100px; border: 2px dotted red; margin: 30px auto; } .wrapper div { width: 300px; height: 100px; line-height: 100px; text-align: center; color: #fff; background: orange; -webkit-transform: skew(45deg); -moz-transform:skew(45deg); transform:skew(45deg); } ``` ### 變形--縮放 scale() 縮放`scale()`函數 讓元素根據中心原點對對象進行縮放。 縮放 `scale` 具有三種情況: 1. `scale(X,Y)`使元素水平方向和垂直方向同時縮放(也就是X軸和Y軸同時縮放) ```css div:hover { -webkit-transform: scale(1.5,0.5); -moz-transform:scale(1.5,0.5) transform: scale(1.5,0.5); } ``` 注意:Y是一個可選參數,如果沒有設置Y值,則表示X,Y兩個方向的縮放倍數是一樣的。 2. `scaleX(x)`元素僅水平方向縮放(X軸縮放) 3. `scaleY(y)`元素僅垂直方向縮放(Y軸縮放) html代碼: ```html <div class="wrapper"> <div>我將放大1.5倍</div> </div> ``` CSS代碼: ```css .wrapper { width: 200px; height: 200px; border:2px dashed red; margin: 100px auto; } .wrapper div { width: 200px; height: 200px; line-height: 200px; background: orange; text-align: center; color: #fff; } .wrapper div:hover { opacity: .5; -webkit-transform: scale(1.5); -moz-transform:scale(1.5) transform: scale(1.5); } ``` ### 變形--位移 translate() `translate()`函數可以將元素向指定的方向移動,類似于`position`中的`relative`, 或以簡單的理解為,使用`translate()`函數,可以把元素從原來的位置移動,而不影響在X、Y軸上的任何Web組件。 `translate`我們分為三種情況: 1. `translate(x,y)`水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動) 2. `translateX(x)`僅水平方向移動(X軸移動) 3. `translateY(Y)`僅垂直方向移動(Y軸移動) html代碼: ```html <div class="wrapper"> <div>我向右向下移動</div> </div> ``` CSS代碼: ```css .wrapper { width: 200px; height: 200px; border: 2px dotted red; margin: 20px auto; } .wrapper div { width: 200px; height: 200px; line-height: 200px; text-align: center; background: orange; color: #fff; -webkit-transform: translate(50px,100px); -moz-transform:translate(50px,100px); transform: translate(50px,100px); } ``` ### 變形--矩陣 matrix() `matrix()` 是一個含六個值的(a,b,c,d,e,f)變換矩陣,用來指定一個2D變換,相當于直接應用一個[a b c d e f]變換矩陣。就是基于水平方向(X軸)和垂直方向(Y軸)重新定位元素 html代碼: ```html <div class="wrapper"> <div></div> </div> ``` CSS代碼: ```css .wrapper { width: 300px; height: 200px; border: 2px dotted red; margin: 40px auto; } .wrapper div { width:300px; height: 200px; background: orange; -webkit-transform: matrix(1,0,0,1,50,50); -moz-transform:matrix(1,0,0,1,50,50); transform: matrix(1,0,0,1,50,50); } ``` ### 變形--原點 transform-origin 任何一個元素都有一個中心點,默認情況之下,其中心點是居于元素X軸和Y軸的50%處 在沒有重置`transform-origin`改變元素原點位置的情況下,CSS變形進行的旋轉、位移、縮放,扭曲等操作都是以元素自己中心位置進行變形。但很多時候,我們可以通過`transform-origin`來對元素進行原點位置改變,使元素原點不在元素的中心位置,以達到需要的原點位置。 `transform-origin`取值和元素設置背景中的`background-position`取值類似 關鍵詞|百分比 ---|--- top = top center = center top|50% 0 right = right center = center right|100%或(100% 50%) bottom = bottom center = center bottom|50% 100% left = left center = center left|0或(0 50%) center = center center|50%或(50% 50%) top left = left top|0 0 right top|top right|100% 0 bottom right|right bottom|100% 100% bottom left = left bottom|0 100% 示例展示:通過`transform-origin`改變元素原點到左上角,然后進行順時旋轉45度 html代碼: ```html <div class="wrapper"> <div>原點在默認位置處</div> </div> <div class="wrapper transform-origin"> <div>原點重置到左上角</div> </div> ``` CSS代碼: ```css .wrapper { width: 300px; height: 300px; float: left; margin: 100px; border: 2px dotted red; line-height: 300px; text-align: center; } .wrapper div { background: orange; -webkit-transform: rotate(45deg); transform: rotate(45deg); } .transform-origin div { -webkit-transform-origin: left top; transform-origin: left top; } ``` ### 動畫--過渡屬性 transition-property 早期在Web中要實現動畫效果,都是依賴于JavaScript或Flash來完成。但在CSS3中新增加了一個新的模塊`transition`,它可以通過一些簡單的CSS事件來觸發元素的外觀變化,讓效果顯得更加細膩。簡單點說,就是通過鼠標的單擊、獲得焦點,被點擊或對元素任何改變中觸發,并平滑地以動畫效果改變CSS的屬性值。 在CSS中創建簡單的過渡效果可以從以下幾個步驟來實現: 1. 在默認樣式中聲明元素的初始狀態樣式; 2. 聲明過渡元素最終狀態樣式,比如懸浮狀態; 3. 在默認樣式中通過添加過渡函數,添加一些不同的樣式。 CSS3的過度`transition`屬性是一個復合屬性,主要包括以下幾個子屬性: * `transition-property`:指定過渡或動態模擬的CSS屬性 * `transition-duration`:指定完成過渡所需的時間 * `transition-timing-function`:指定過渡函數 * `transition-delay`:指定開始出現的延遲時間 先來看`transition-property`屬性 `transition-property`用來指定過渡動畫的CSS屬性名稱,而這個過渡屬性只有具備一個中點值的屬性(需要產生動畫的屬性)才能具備過渡效果,其對應具有過渡的CSS屬性主要有: * `background-color` * `background-position` * `border-bottom-color` * `border-botom-width` * `border-left-color` * `border-left-width` * `border-right-color` * `border-right-width` * `border-spacing` * `border-top-color` * `border-top-width` * `bottom` * `clip` * `color` * `font-size` * `font-weight` * `height` * `left` * `letter-spacing` * `line-height` * `margin-bottom` * `margin-left` * `margin-right` * `margin-top` * `max-height` * `max-width` * `min-height` * `min-width` * `opacity` * `ouline-color` * `ouline-width` * `padding-bottom` * `padding-left` * `padding-right` * `padding-top` * `right` * `text-indent` * `text-shadow` * `vertical-align` * `visibility` * `width` * `word-spacing` * `z-index` ```css div { width: 200px; height: 200px; background-color:red; margin: 20px auto; -webkit-transition: background-color .5s ease .1s; transition: background-color .5s ease .1s; } div:hover { background-color: orange; } ``` 特別注意:當`transition-property`屬性設置為`all`時,表示的是所有中點值的屬性。 ### 動畫--過渡所需時間 transition-duration `transition-duration`屬性主要用來設置一個屬性過渡到另一個屬性所需的時間,也就是從舊屬性過渡到新屬性花費的時間長度,俗稱持續時間。 案例演示:在鼠標懸停(hover)狀態下,讓容器從直角慢慢過渡到圓角,并讓整個動畫持續0.5s。 ```css div { width: 300px; height: 200px; background-color: orange; margin: 20px auto; -webkit-transition-property: -webkit-border-radius; transition-property: border-radius; -webkit-transition-duration: .5s; transition-duration: .5s; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; -webkit-transition-delay: .2s; transition-delay: .2s; } div:hover { border-radius: 20px; } ``` ### 動畫--過渡函數 transition-timing-function `transition-timing-function`屬性指的是過渡的“緩動函數”。主要用來指定瀏覽器的過渡速度,以及過渡期間的操作進展情況,其中要包括以下幾種函數: 函數|功能描述 ---|--- ease|默認值,元素樣式從初始狀態過渡到終止狀態時速度由快到慢,逐漸變慢 linear|元素樣式從初始狀態過渡到終止狀態速度是恒定的 ease-in|元素樣式從初始狀態過渡到終止狀態時,速度越來越快,呈一種加速狀態 ease-out|元素樣式從初始狀態多度到終止狀態時,速度越來越慢,呈一種減速狀態 ease-in-out|元素原始初始狀態到終止狀態時,先加速再減速。 案例展示:在hover狀態下,讓容器從一個正方形慢慢過渡到一個圓形,而整個過渡是先加速再減速,也就是運用`ease-in-out`函數。 ```css div { width: 200px; height: 200px; background: red; margin: 20px auto; -webkit-transition-property: -webkit-border-radius; transition-property: border-radius; -webkit-transition-duration: .5s; transition-duration: .5s; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; -webkit-transition-delay: .2s; transition-delay: .2s; } div:hover { border-radius: 100%; } ``` ### 動畫--過渡延遲時間 transition-delay `transition-delay`屬性和`transition-duration`屬性極其類似,不同的是`transition-duration`是用來設置過渡動畫的持續時間,而`transition-delay`主要用來指定一個動畫開始執行的時間,也就是說當改變元素屬性值后多長時間開始執行。 有時我們想改變兩個或者多個css屬性的`transition`效果時,只要把幾個`transition`的聲明串在一起,用逗號(“,”)隔開,然后各自可以有各自不同的延續時間和其時間的速率變換方式。但需要值得注意的一點:第一個時間的值為 `transition-duration`,第二個為`transition-delay`。 例如: ```css a{ transition: background 0.8s ease-in 0.3,color 0.6s ease-out 0.3;} ``` 示例演示:通過`transition`屬性將一個200px X 200px的橙色容器,在鼠標懸浮狀態時,過渡到一個300px * 300px的紅色容器。而且整個過渡0.1s后觸發,并且整個過渡持續0.28s。 html代碼: ```html <div class="wrapper"> <div>鼠標放到我的身上來</div> </div> ``` CSS代碼: ```css .wrapper { width: 400px; height: 400px; margin: 20px auto; border: 2px dotted red; } .wrapper div { width: 200px; height: 200px; background-color: orange; -webkit-transition: all .28s ease-in .1s; transition: all .28s ease-in .1s; } .wrapper div:hover { width: 300px; height: 300px; background-color: red; } ``` ### Keyframes介紹 > `Keyframes`被稱為關鍵幀,其類似于Flash中的關鍵幀。在CSS3中其主要以`@keyframes`開頭,后面緊跟著是動畫名稱加上一對花括號`{…}`,括號中就是一些不同時間段樣式規則。 ```css @keyframes changecolor{ 0%{ background: red; } 100%{ background: green; } } ``` 在一個`@keyframes`中的樣式規則可以由多個百分比構成的,如在`0%`到`100%`之間創建更多個百分比,分別給每個百分比中給需要有動畫效果的元素加上不同的樣式,從而達到一種在不斷變化的效果。 經驗與技巧:在`@keyframes`中定義動畫名稱時,其中0%和100%還可以使用關鍵詞from和to來代表,其中0%對應的是from,100%對應的是to。 案例演示: 通過`@keyframes`聲明一個名叫`wobble`的動畫,從“0%”開始到“100%”結束,同時還經歷了一個“40%”和“60%”兩個過程。“wobble”動畫在“0%”時元素定位到left為100px,背景色為green,然后在“40%”時元素過渡到left為150px,背景色為orange,接著在“60%”時元素過渡到left為75px,背景色為blue,最后“100%”時結束動畫,元素又回到起點left為100px處,背景色變為red。 html: ```html <div>鼠標放到我身上</div> ``` CSS: ```css @keyframes wobble { 0% { margin-left: 100px; background:green; } 40% { margin-left:150px; background:orange; } 60% { margin-left: 75px; background: blue; } 100% { margin-left: 100px; background: red; } } div { width: 100px; height: 100px; background:red; color: #fff; } div:hover{ animation: wobble 5s ease .1s; } ``` ### 調用動畫 > `animation-name`屬性主要是用來調用 `@keyframes` 定義好的動畫。需要特別注意: `animation-name` 調用的動畫名需要和`@keyframes`定義的動畫名稱完全一致(區分大小寫),如果不一致將不具有任何動畫效果。 語法: ```css animation-name: none | IDENT[,none|DENT]*; ``` 1. IDENT是由 `@keyframes` 創建的動畫名,上面已經講過了(`animation-name` 調用的動畫名需要和`@keyframes`定義的動畫名稱完全一致) 2. `none`為默認值,當值為 `none` 時,將沒有任何動畫效果,這可以用于覆蓋任何動畫。 注意:需要在 Chrome 和 Safari 上面的基礎上加上`-webkit-`前綴,Firefox加上`-moz-`。 ### 設置動畫播放時間 > `animation-duration`主要用來設置CSS3動畫播放時間,其使用方法和`transition-duration`類似,是用來指定元素播放動畫所持續的時間長,也就是完成從0%到100%一次動畫所需時間。單位:S秒 語法規則: ```css animation-duration: <time>[,<time>]* ``` 取值<time>為數值,單位為秒,其默認值為“0”,這意味著動畫周期為“0”,也就是沒有動畫效果(如果值為負值會被視為“0”)。 案例演示:制作一個矩形變成圓形的動畫,整個動畫播放時間持續了10s鐘。 HTML: ```html <div>Hover Me</div> ``` CSS: ```css @keyframes toradius{ from { border-radius: 0; } to { border-radius: 100%; } } div { width: 200px; height: 200px; line-height: 200px; text-align: center; color: #fff; background: green; margin: 20px auto; } div:hover { animation-name: toradius; animation-duration: 10s; animation-timing-function: ease-in-out; animation-delay: .1s; } ``` ### 設置動畫播放方式 > `animation-timing-function`屬性主要用來設置動畫播放方式。主要讓元素根據時間的推進來改變屬性值的變換速率,簡單點說就是動畫的播放方式。 語法規則: ```css animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]* ``` 它和`transition`中的`transition-timing-function`一樣,具有以下幾種變換方式:`ease`,`ease-in`,`ease-in-out`,`ease-out`,`linear`和`cubic-bezier`。對應功如下: 函數|功能描述 ---|--- ease|默認值,元素樣式從初始狀態過渡到終止狀態時速度由快到慢 linear|元素樣式從初始狀態過渡到終止狀態速度是恒定的 ease-in|元素樣式從初始狀態過渡到終止狀態時速度越來越快,呈加速狀態 ease-out|元素樣式從初始狀態過渡到終止狀態時越來越慢,呈減速狀態 ease-in-out|元素樣式從初始狀態到終止狀態時先加速再減速 ### 設置動畫開始播放的時間 > `animation-delay`屬性用來定義動畫開始播放的時間,用來觸發動畫播放的時間點。和`transition-delay`屬性一樣,用于定義在瀏覽器開始執行動畫之前等待的時間。 語法規則: ```css animation-delay:<time>[,<time>]* ``` 案例演示: 瀏覽器渲染樣式之后2S之后觸發move動畫。 HTML: ```html <div><span></span></div> ``` CSS: ```css @keyframes move { 0%{ transform: translate(0); } 15%{ transform: translate(100px,180px); } 30%{ transform: translate(150px,0); } 45%{ transform: translate(250px,180px); } 60%{ transform:translate(300px,0); } 75%{ transform: translate(450px,180px); } 100%{ transfrom: translate(480px,0); } } div { width: 500px; height: 200px; border: 1px solid red; margin: 20px auto; } div span { display: inline-block; width: 20px; height: 20px; background: green; border-radius: 100%; animation-name:move; animation-duration: 10s; animation-timing-function:ease; animation-delay:2s; animation-iteration-count:infinite; } ``` ### 設置動畫播放次數 > `animation-iteration-count`屬性主要用來定義動畫的播放次數。 語法規則: ```css animation-iteration-count: infinite | <number> [, infinite | <number>]* ``` 1. 其值通常為整數,但也可以使用帶有小數的數字,其默認值為1,這意味著動畫將從開始到結束只播放一次。 2. 如果取值為infinite,動畫將會無限次的播放。 舉例:通過animation-iteration-count屬性讓動畫move只播放5次,代碼設置為: ```css animation-iteration-count:5; ``` 注意:Chrome或Safari瀏覽器,需要加入-webkit-前綴! ### 設置動畫播放方向 > `animation-direction`屬性主要用來設置動畫播放方向,其語法規則如下: ```css animation-direction:normal | alternate [, normal | alternate]* ``` 其主要有兩個值:normal、alternate 1. `normal`是默認值,如果設置為`normal`時,動畫的每次循環都是向前播放; 2. 另一個值是`alternate`,他的作用是,動畫播放在第偶數次向前播放,第奇數次向反方向播放。 例如:通過`animation-direction`屬性,將`move`動畫播放動畫方向設置為`alternate`,代碼為: ```css animation-direction:alternate; ``` 注意:Chrome或Safari瀏覽器,需要加入-webkit-前綴! ### 設置動畫的播放狀態 > `animation-play-state`屬性主要用來控制元素動畫的播放狀態。 參數:`running`和`paused` 其中running是其默認值,主要作用就是類似于音樂播放器一樣,可以通過paused將正在播放的動畫停下來,也可以通過running將暫停的動畫重新播放,這里的重新播放不一定是從元素動畫的開始播放,而是從暫停的那個位置開始播放。另外如果暫停了動畫的播放,元素的樣式將回到最原始設置狀態。 例如,頁面加載時,動畫不播放。代碼如下: ```css animation-play-state:paused; ``` ### 設置動畫時間外屬性 > `animation-fill-mode`屬性定義在動畫開始之前和結束之后發生的操作。主要具有四個屬性值:`none`、`forwards`、`backwords`和`both`。其四個屬性值對應效果如下: 屬性值|效果 ---|--- none|默認值,表示動畫將按預期進行和結束,在動畫完成其最后一幀時,動畫會反轉到初始幀處 forwards|表示動畫在結束后繼續應用最后的關鍵幀的位置 backwards|會在向元素應用動畫樣式時迅速應用動畫的初始幀 both|元素動畫同時具有forwards和backwards效果 在默認情況之下,動畫不會影響它的關鍵幀之外的屬性,使用`animation-fill-mode`屬性可以修改動畫的默認行為。簡單的說就是告訴動畫在第一關鍵幀上等待動畫開始,或者在動畫結束時停在最后一個關鍵幀上而不回到動畫的第一幀上。或者同時具有這兩個效果。 例如:讓動畫停在最一幀處。代碼如下: ```css animation-fill-mode:forwards; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看