🎬️create
@ Component
export default struct TitleBar {
build ( ) {
Row ( ) {
Text ( 'transition' )
. fontSize ( '30fp' )
. fontColor ( Color. White)
}
. width ( '100%' )
. height ( '8%' )
. backgroundColor ( '#4169E1' )
. padding ( { left: 10 } )
}
}
🎞️interface
export interface IList {
title: string ;
url : string ;
}
@ State listData: IList[ ] = [
{
title: 'in' ,
url: 'pages/home1'
} ,
{
title: 'scale' ,
url: 'pages/home2'
} ,
{
title: 'small' ,
url: 'pages/home3'
} ,
{
title: 'in' ,
url: ''
}
]
💡foreach
ForEach ( this . listData, ( item: IList, index? : number ) => {
Button ( { type: ButtonType. Capsule} ) {
Text ( item. title)
. fontSize ( '35fp' )
. fontColor ( Color. White)
}
} )
🔦router
import router from '@ohos.router'
📼mainpage
"pages/home1"
📹️onclick
. onClick ( ( ) => {
router. pushUrl ( { url: item. url} )
} )
📺️setInterval
import router from '@ohos.router'
@ Entry
@ Component
struct Index {
@ State TOTAL_TIME : number = 6 ;
@ State FIRST_CT : number = 3 ;
aboutToAppear ( ) {
let timer= setInterval ( ( ) => {
this . TOTAL_TIME -- ;
if ( this . TOTAL_TIME === 0 ) {
router. pushUrl ( {
url: "pages/Index"
} )
clearInterval ( timer) ;
}
} , 1000 )
}
build ( ) {
Column ( ) {
Row ( ) {
if ( this . TOTAL_TIME > this . FIRST_CT ) {
Image ( $r ( 'app.media.t2' ) )
. objectFit ( ImageFit. Contain)
} else if ( this . TOTAL_TIME < this . FIRST_CT ) {
Image ( $r ( 'app.media.bc' ) )
. objectFit ( ImageFit. Contain)
. width ( '30%' )
Text ( ' - m - ' )
. fontSize ( '30fp' )
}
}
. width ( '100%' )
. height ( '100%' )
. justifyContent ( FlexAlign. Center)
}
. width ( '100%' )
}
}
📽️TransitionEnter scale
@ State scale1: number = 1
@ State opacity1: number = 1
Column ( )
. scale ( { x: this . scale1 } ) . opacity ( this . opacity1)
pageTransition ( ) {
PageTransitionEnter ( { duration: 1200 , curve: Curve. Linear } )
. onEnter ( ( type: RouteType, progress: number ) => {
this . scale1 = 1
this . opacity1 = progress
} )
PageTransitionExit ( { duration: 1500 , curve: Curve. Ease } )
. onExit ( ( type: RouteType, progress: number ) => {
this . scale1 = 1 - progress
this . opacity1 = 1
} )
}
🎥SlideEffect.Left
pageTransition ( ) {
PageTransitionEnter ( { duration: 1200 } )
. slide ( SlideEffect. Left)
PageTransitionExit ( { delay: 100 } )
. translate ( { x: 100.0 , y: 100.0 } )
. opacity ( 0 )
}