css如何?2D的轉換(執行個體)

來源:互聯網
上載者:User

本篇文章給大家帶來的內容是關於css如何?2D的轉換(執行個體),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

指令碼化css
下面通過css實現動畫效果,可以使用指令碼化的css實現滑入,輪廓伸縮的列表,即動態HTML,一個過時的說法DHTML

一些css的基礎知識

之前已經看過厚厚的一本大書,現在簡單看一下,補充一下不知道的點

層疊

web瀏覽器混合元素的style屬性,然後再計算樣式。

顏色透明度和半透明

顏色有半透明的顏色(不知道為什麼edge不相容)

指令碼化內聯樣式

p.style.background = "#FFFFFF"

即通過js完成css樣式的添加

由於-會被js認為有語法錯誤,所以-統一在js中變成駝峰命名法進行命名。這是一種習慣

同樣的也可以直接使用屬性進行設定

e.setAttribute

進行設定css的內聯樣式

其實是通過增加css的屬性的內聯樣式達到效果的。即style的值

style的權重要大於任何的樣式,所以用js產生的style的樣式的值,一直起作用,除非刻意的更改其權重。

css的2d轉換

即,進行一些css的轉換

座標

描述座標的系統有笛卡爾座標系統和齊次座標系。

笛卡爾座標系

用一組數值在一組平面上表示一個點。其座標為右手法則(在三維上)
更多 https://en.wikipedia.org/wiki/Cartesian_coordinate_system
其下方的變換是基於笛卡爾座標系進行變換
通過將點用矩陣進行表示,對矩陣進行變換,(線性變換)得到相應的結果。例如進行乘法變換,加法變換等等。

transform

屬性將會允許修改CSS視覺格式模型的座標空間。使用它,元素可以被轉換(translate)、旋轉(rotate)、縮放(scale)、傾斜(skew)。 只對區塊層級元素生效

原點

有三個值,一個值為x軸,一個值為y軸,一個值為z軸。
如所示

每個值可以進行設定,此為旋轉原點
具體的值為transform-origin
如果未指定初始值,將會直接使用繼承。

示範

https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform-origin

rotate旋轉

該方法定義了一種將元素圍繞一個定點,該定點由transform-origin指定元素變形的原點。

單位 angle

一種css的基礎資料型別 (Elementary Data Type)。angle表示角的大小,單位為度(degrees)百分度(gradians)弧度(radians)圈數(turns)
deg 度
grad 百分度 (複習一下數學,一種角的測量單位,定義為將一個圓切成400等分,也就是一個直角等於100百分度 https://zh.wikipedia.org/wiki/%E7%99%BE%E5%88%86%E5%BA%A6)
rad 弧度 (複習一下數學 https://zh.wikipedia.org/wiki/%E5%BC%A7%E5%BA%A6)
turn 圈數

文法

數字與單位之間沒有空格。數字為0時,單位可以省略。
使用+號或者-號開頭,正數表示順時針的角,負數表示逆時針的角。

一些例子

90deg = 100grad = 0.25trun ≈ 1.57rad(約等於π/2)
所有的如下表示

一個旋轉說明

縮放 scale

一個css函數scale()用於縮放。用於修改元素的大小,通過向量形式定義的縮放值來放大和縮小元素。有兩個值,一個值為sx,一個值為sy,根據兩個值得出結果。如果sy未設定,將會直接用sx的值設定sy的值。其單位為css資料類型中的number

該縮放僅僅支援歐幾裡得平面(二維平面)上的變換

設定的css的值為

transform: scale(2, 2);

至此,完成了一個橫軸一倍,縱軸一倍的放大。
同理,縮小也可以。

傾斜 skew

為一個偏斜的二維平面上的原件變化,其結果為資料類型。

剪下映射

css的傾斜為剪下映射,每個點的座標由與指定角度或成比例的值到原點的距離。對於每個座標產生矩陣,然後對矩陣進行運算,得出運算後的座標值。

css的3d轉換

座標

齊次座標系

由笛卡爾座標系投影得到。
1. 檢視平面中的任何點由三元組(x,y,z)表示,稱為點的齊次座標和投影座標
2. 如果座標乘以公因子,則給定的一組齊次座標點不變
3. 相反,若且唯若通過所有座標乘以相同的非零常數,從另一個獲得一個時,兩組齊次座標表示相同的點
4. 當z不為0時,表示的點為歐幾裡得的點。
5. 當z為0時表示的點為無窮遠處的點

rotateX()

圍繞x軸進行旋轉

ps;設定的原點值為center

transform-origin:center;

rotateY()同理

3d組合不可進行交換,如果進行交換會導致出現不同的效果。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.