@view-transition
æéå¯ç¨
æ¤ç¹æ§ä¸å±äºåºçº¿ï¼å 为å®å°æªå¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æã
@view-transition CSS at è§åç¨äºå¨è·¨ææ¡£å¯¼èªçæ
åµä¸éæ©å½åææ¡£åç®æ ææ¡£è¿è¡è§å¾è¿æ¸¡ã
è¦ä½¿è·¨ææ¡£è§å¾è¿æ¸¡æ£å¸¸å·¥ä½ï¼å¯¼èªçå½åææ¡£åç®æ ææ¡£ä¹éè¦åæºã
è¯æ³
@view-transition {
navigation: auto;
}
æè¿°ç¬¦
-
æå®æ¤è§åå¯¹ææ¡£çè§å¾è¿æ¸¡è¡ä¸ºçå½±åãå¯è½çå¼å æ¬ï¼
-
autoï¼å¦æå¯¼èªæ¯åæºçï¼æ²¡æè·¨æºéå®åï¼å¹¶ä¸å ¶navigationType为traverseãpushæreplaceï¼åææ¡£å¨åä¸å¯¼èªæ¶å°ç»åè§å¾è¿æ¸¡ã对äºpushæreplaceï¼å¯¼èªå¿ é¡»ç±ç¨æ·ä¸é¡µé¢å å®¹äº¤äºæ¥åèµ·ï¼è䏿¯ç±æµè§å¨ UI åè½åèµ·ã -
noneï¼è¯¥ææ¡£å°ä¸ä¼ç»åè§å¾è¿æ¸¡ã
-
å½¢å¼è¯æ³
@view-transition =
@view-transition { <declaration-list> }
示ä¾
>页é¢è§å¾è¿æ¸¡
以ä¸ä»£ç çæ®µå±ç¤ºäºé¡µé¢è¿æ¸¡æ¼ç¤ºä¸ä½¿ç¨çå ³é®æ¦å¿µã该æ¼ç¤ºä½¿ç¨è·¨ææ¡£è§å¾è¿æ¸¡ï¼å¨ç½ç«ç两个页é¢ä¹é´å¯¼èªæ¶åççåç§çè¿æ¸¡ãæå ³å®æ´æ¼ç¤ºï¼è¯·åé è§å¾è¿æ¸¡å¤é¡µåºç¨æ¼ç¤ºã
å¨ CSS ä¸ä¸ºå¯¼èªçå½åææ¡£åç®æ ææ¡£æå® @view-transition at è§åï¼ä»¥å°å®ä»¬é½å å
¥å°è§å¾è¿æ¸¡ä¸ï¼
@view-transition {
navigation: auto;
}
é¤äº @view-transition at è§åä¹å¤ï¼æä»¬è¿ä½¿ç¨ @keyframes at è§åå®ä¹ä¸¤ä¸ªå
³é®å¸§å¨ç»ï¼å¹¶ä½¿ç¨ animation ç®å屿§å°è¿äºå
³é®å¸§å¨ç»åºç¨äºæä»¬æ³è¦å¨ç»ç离å¼ï¼::view-transition-old()ï¼åè¿å
¥ï¼::view-transition-new()ï¼é¡µé¢ä¸çå
ç´ ã
/* å建èªå®ä¹å¨ç» */
@keyframes move-out {
from {
transform: translateY(0%);
}
to {
transform: translateY(-100%);
}
}
@keyframes move-in {
from {
transform: translateY(100%);
}
to {
transform: translateY(0%);
}
}
/* å°èªå®ä¹å¨ç»åºç¨äºæ°æ§é¡µé¢ç¶æ */
::view-transition-old(root) {
animation: 0.4s ease-in both move-out;
}
::view-transition-new(root) {
animation: 0.4s ease-in both move-in;
}
æ¥çæ¤è¿æ¸¡å¤é¡µåºç¨å®æ¶æ¼ç¤ºã
è§è
| è§è |
|---|
| CSS View Transitions Module Level 2> # view-transition-rule> |