css動畫 形變、運動、3d詳解

transform變化:
	以' '空格分隔,可以一次寫多個變化
	同個元素多個transform,其他transform不會保留之前的效果,需要重寫
	
	移動:
	translateX(npx);
	translateY(npx);
	translateZ(npx); 往縱穿元素的方向運動,看起來像大小變化的水平移動
	translate(npx,npx)
	translate3d(npx,npx,npx)
	
	旋轉:
	非平面需要透視
	rotateX(ndeg):元素水平中線爲軸,從下往上開始旋轉,然後投影在屏幕,只看得到面積變化,無角度
	rotateY(ndeg):元素豎直中線爲軸,從右往左逆時針開始旋轉,然後投影在屏幕
	routateZ(ndeg); 沿着z軸,即按照平面旋轉
	routate(ndeg); 和繞z軸旋轉相同,在平面旋轉
	routate3d(n向量,n向量,n向量,ndeg);
		當n爲0時代表不繞該軸旋轉,1,1,0表示按xy對角線旋轉,向量越大,對應軸的旋轉力度越大
	
	
	縮放:
	scaleX(n); 寬度縮放
	scaleY(n); 高度縮放
	scaleZ(n);  z軸被拉伸/壓縮縮放,不是改變元素高寬
	scale(n)/scale(n寬,n高)  高寬都縮放
	scale3d(n,n,n)
	
	傾斜:
	skewX(ndeg); 水平方向傾斜,高度不變
	skewY(ndeg); 豎直方向傾斜,寬度不變
	skew(ndeg,ndeg)
		
	3d:
	只要涉及到z軸的3d效果或投影,就需要3d,放置父元素,用於查看子元素的旋轉等3d
	transform-style: preserve-3d;
	
	透視:
	只要涉及到z軸的3d效果或投影,就需要透視透過投影
	perspective(npx):透視,即透視元素的投影,看到元素旋轉的原本模樣,越大透視越小
		每個元素單獨加透視,則透視的角度是一樣的:transform:perspective(npx);
		perspective:npx; 隻影響子元素,每個子元素的透視都不相同,做整體效果可能會不對整
		transform:perspective(npx); 只對自身,每個子元素的透視點都相同
	
transition過渡:
	設置變化的時間等,當配合僞類要產生時間的話,僞類中的屬性本類中至少要有一項,否則無法產生時間延遲
	在僞類中設置只會觸發激活的一段,返回的時間不會觸發
	僞類的過渡會基礎本類設置的過渡
	
	設置所有屬性過渡以及簡寫
	transition:ns; 
	transition:transform ns;
	transition:all 運動方式 過渡時間 延遲過渡時間
	transition:屬性 運動方式 過渡時間 延遲過渡時間,屬性 運動方式 過渡時間 延遲過渡時間,...
	
	設置過渡時間:
	transition-duration: ns;
	transition-duration:ns,ns; 對應transition-property的屬性,分別設置過渡時間,未匹配的屬性會從第一個時間開始重新匹配
	
	設置指定屬性過渡
	transition-property:屬性1,屬性2/all全過渡/none都不過渡
	transition-duration: ns;  搭配transition-property使用,直接transition無效
	
	設置延遲過渡(延遲多少秒後執行transition-duration)
	transition-delay:ns,nms,...; 配合transition-property可實現指定屬性延遲過渡,過渡規則和transition-duration一樣
	
	設置過渡方式
	transition-timing-function: ease-in;
	transition-timing-function:cubic-bezier(.17,.67,1,-0.21); 根據貝塞爾來繪製,可在cubic-bezier.com中測試
	transition-timing-function:steps(n,start/end);  將動畫分爲n步(幀)完成,start立即開始,end會過1幀再開始,效果類似ppt
		其中:transition-timing-function:steps(1,start/end);可簡寫成step-start/step-end
	
	監聽過渡(動畫)結束
	xx.addEventListener('transitioned',function(e){...})		

2d改變行變參考點:
	旋轉等默認爲元素中心
	對所有的2d變化都有效
	transform-origin: left center;可改變參考點,也可換成數值

3d改變形變參考點:
	改變了縱穿物體的z軸,默認爲在元素平面中心點
	transform-origin: left center npx;可改變參考點,也可換成數值

改變視角讓物體旋轉:
	父元素必須設置透視和3d
	perspective:npx
	perspective-origin: bottom center; 或者數字,視角到物體的下部中心

元素背面不可見:
	backface-visibility: hidden;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章