第九节HarmonyOS 常用基础组件22-Marquee

1、描述

跑马灯组件,用于滚动展示一段单行文本,仅当文本内容宽度超过跑马灯组件宽度时滚动。

2、接口

Marquee(value:{start:boolean, step?:number, loop?:number, fromStart?: boolean ,src:string})

3、参数

参数名

参数类型

必填

描述

start

boolean

控制跑马灯是否进入播放状态。

step

number

滚动动画文本滚动步长。默认值:6、单位vp。

loop

number

设置重复滚动的次数,小于等于0时无限循环。默认值:-1。

fromStart

boolean

设置文本从头开始滚动还是反向滚动。默认值:true。

src

string

需要滚动的文本。

4、属性

 allowScale - boolean - 是否允许文本缩放。默认值:false。

5、事件

onStart(event:() => void) - 开始滚动时触发回调。

onBounce(event:() => void) - 完成一次滚动时触发回调,若循环次数不为1,则该事件会多次触发。

onFinish(event:() => void) - 滚动全部循环次数时触发回调。

6、示例

import router from '@ohos.router'

@Entry
@Component
struct MarqueePage {
  @State message: string = '跑马灯组件,用于滚动展示一段单行文本,仅当文本内容宽度超过跑马灯组件宽度时滚动。'
  @State isStart: boolean = false;
  @State step: number = 6;
  @State loopNum: number = -1;
  @State fromStart: boolean = true;

  build() {
    Row() {
      Scroll() {
        Column() {
          Text(this.message)
            .fontSize(20)
            .fontWeight(FontWeight.Bold)
            .width("96%")

          Blank(12)
          Marquee({
            start: this.isStart, // 控制跑马灯是否进入播放状态
            step: this.step, // 滚动动画文本滚动步长,即速度
            loop: this.loopNum, // 设置重复滚动的次数,小于等于0时无限循环
            fromStart: this.fromStart, // 设置文本从头开始滚动还是反向滚动
            src: this.message // 需要滚动的文本
          })
            .width("96%")
            .height(60)
            .fontColor('#FFFFFF')
            .fontSize(36)
            .fontWeight(700)
            .backgroundColor('#182431')
            .onStart(() => {
              console.info('Marquee animation complete onStart')
            })
            .onBounce(() => {
              console.info('Marquee animation complete onBounce')
            })
            .onFinish(() => {
              console.info('Marquee animation complete onFinish')
            })
          Blank(12)
          Row() {
            Button('Start')
              .onClick(() => {
                this.isStart = true
              })
              .width(100)
              .height(40)
              .fontSize(16)
              .fontWeight(500)
              .backgroundColor('#007DFF')

            Button('step')
              .onClick(() => {
                this.step = 16
              })
              .width(100)
              .height(40)
              .fontSize(16)
              .fontWeight(500)
              .margin({ left: 16 })
              .backgroundColor('#007DFF')

            Button('fromStart')
              .onClick(() => {
                this.fromStart = false
              })
              .width(100)
              .height(40)
              .fontSize(16)
              .fontWeight(500)
              .margin({ left: 16 })
              .backgroundColor('#007DFF')
          }

          Blank(12)
          Button("Marquee文本文档")
            .fontSize(20)
            .backgroundColor('#007DFF')
            .width('96%')
            .onClick(() => {
              // 处理点击事件逻辑
              router.pushUrl({
                url: "pages/baseComponent/marquee/MarqueeDesc",
              })
            })
          Blank(12)

        }
        .width('100%')
      }
    }
    .padding({ top: 12, bottom: 12 })
  }
}

7、效果图

第九节HarmonyOS 常用基础组件22-Marquee_第1张图片

你可能感兴趣的:(harmonyos,前端,openHarmony)