js-components-basic-marquee.md 4.9 KB
Newer Older
Z
zengyawen 已提交
1 2
# marquee

H
geshi  
HelloCrease 已提交
3 4
>  **说明:**
>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
C
caocan 已提交
5
>  从API version 6开始,仅当文本内容宽度超过跑马灯组件宽度时滚动。
Z
zengyawen 已提交
6 7 8

跑马灯组件,用于展示一段单行滚动的文字。

Z
zengyawen 已提交
9
## 权限列表
Z
zengyawen 已提交
10 11 12



Z
zengyawen 已提交
13 14

## 子组件
Z
zengyawen 已提交
15 16 17 18

不支持。


Z
zengyawen 已提交
19 20 21 22
## 属性

除支持[通用属性](../arkui-js/js-components-common-attributes.md)外,还支持如下属性:

H
geshi  
HelloCrease 已提交
23 24 25 26 27
| 名称           | 类型     | 默认值  | 必填   | 描述                                       |
| ------------ | ------ | ---- | ---- | ---------------------------------------- |
| scrollamount | number | 6    | 否    | 跑马灯每次滚动时移动的最大长度。                         |
| loop         | number | -1   | 否    | 跑马灯滚动的次数。如果未指定,则默认值为-1,当该值小于等于零时表示marquee将连续滚动。 |
| direction    | string | left | 否    | 设置跑马灯的文字滚动方向,可选值为left和right。             |
Z
zengyawen 已提交
28 29


Z
zengyawen 已提交
30
## 样式
Z
zengyawen 已提交
31

Z
zengyawen 已提交
32
除支持[通用样式](../arkui-js/js-components-common-styles.md)外,还支持如下样式:
Z
zengyawen 已提交
33

H
geshi  
HelloCrease 已提交
34 35 36 37 38 39 40
| 名称          | 类型                         | 默认值        | 必填   | 描述                                       |
| ----------- | -------------------------- | ---------- | ---- | ---------------------------------------- |
| color       | <color>              | \#e5000000 | 否    | 设置跑马灯中文字的文本颜色。                           |
| font-size   | <length>             | 37.5       | 否    | 设置跑马灯中文字的文本尺寸。                           |
| allow-scale | boolean                    | true       | 否    | 设置跑马灯中文字的文本尺寸是否跟随系统设置字体缩放尺寸进行放大缩小。<br/>如果在config描述文件中针对ability配置了fontSize的config-changes标签,则应用不会重启而直接生效。 |
| font-weight | number&nbsp;\|&nbsp;string | normal     | 否    | 设置跑马灯中文字的字体的粗细,见[text组件font-weight的样式属性](../arkui-js/js-components-basic-text.md#样式)。 |
| font-family | string                     | sans-serif | 否    | 设置跑马灯中文字的字体列表,用逗号分隔,每个字体用字体名或者字体族名设置。列表中第一个系统中存在的或者通过[自定义字体](../arkui-js/js-components-common-customizing-font.md)指定的字体,会被选中作为文本的字体。 |
Z
zengyawen 已提交
41 42


Z
zengyawen 已提交
43
## 事件
Z
zengyawen 已提交
44

Z
zengyawen 已提交
45
除支持[通用事件](../arkui-js/js-components-common-events.md)外,还支持如下事件:
Z
zengyawen 已提交
46

H
geshi  
HelloCrease 已提交
47 48 49 50 51
| 名称           | 参数   | 描述                                       |
| ------------ | ---- | ---------------------------------------- |
| bounce(Rich) | -    | 当文本滚动到末尾时触发该事件。                          |
| finish(Rich) | -    | 当完成滚动次数时触发该事件。需要在&nbsp;loop&nbsp;属性值大于&nbsp;0&nbsp;时触发。 |
| start(Rich)  | -    | 当文本滚动开始时触发该事件。                           |
Z
zengyawen 已提交
52

Z
zengyawen 已提交
53
## 方法
Z
zengyawen 已提交
54

Z
zengyawen 已提交
55
除支持[通用方法](../arkui-js/js-components-common-methods.md)外,还支持如下方法:
Z
zengyawen 已提交
56

H
geshi  
HelloCrease 已提交
57 58 59 60
| 名称    | 参数   | 描述    |
| ----- | ---- | ----- |
| start | -    | 开始滚动。 |
| stop  | -    | 停止滚动。 |
Z
zengyawen 已提交
61 62 63


## 示例
Z
zengyawen 已提交
64

H
geshi  
HelloCrease 已提交
65
```html
Z
zengyawen 已提交
66
<!-- xxx.hml -->
Y
yamila 已提交
67 68 69 70 71 72 73 74 75 76
<div class="tutorial-page">
  <div class="mymarquee">
    <marquee  style="color: {{color1}}" loop="{{loopval}}" scrollamount="{{scroll}}" direction="{{isleft}}" class="marqueetext" 
    id="testmarquee" onfinish="setfinish">
      Life is a journey, not the destination.
    </marquee>
  </div>
  <div style="width: 600px;height: 150px;flex-direction: row;justify-content: space-around;">
    <button onclick="makestart"  value="start"></button>
    <button onclick="makestop" value="stop"></button>
Z
zengyawen 已提交
77 78 79 80
  </div>
</div>
```

H
geshi  
HelloCrease 已提交
81
```css
Z
zengyawen 已提交
82
/* xxx.css */
Y
yamila 已提交
83 84 85
.tutorial-page {
  width: 750px;
  height: 100%;
Z
zengyawen 已提交
86 87
  flex-direction: column;
  align-items: center;
Y
yamila 已提交
88
  justify-content: center;
Z
zengyawen 已提交
89
}
Y
yamila 已提交
90 91
.marqueetext {
  font-size: 37px;
Z
zengyawen 已提交
92
}
Y
yamila 已提交
93 94 95 96 97 98 99 100 101
.mymarquee {
  margin-top: 20px;
  width:100%;
  height: 100px;
  margin-left: 50px;
  margin-right: 50px;
  border: 1px solid #dc0f27;
  border-radius: 15px;
  align-items: center;
Z
zengyawen 已提交
102
}
Y
yamila 已提交
103 104 105 106
button{
  width: 200px;
  height: 80px;
  margin-top: 100px;
Z
zengyawen 已提交
107 108 109
}
```

H
geshi  
HelloCrease 已提交
110
```js
Z
zengyawen 已提交
111 112
// xxx.js
export default {
Y
yamila 已提交
113 114 115 116
  private: {
    loopval: 1,
    scroll: 8,
    color1: 'red'
Z
zengyawen 已提交
117
  },
Y
yamila 已提交
118
  onInit(){
Z
zengyawen 已提交
119
  },
Y
yamila 已提交
120 121 122 123 124 125 126 127
  setfinish(e) {
    this.loopval=  this.loopval + 1,
    this.r = Math.floor(Math.random()*255),
    this.g = Math.floor(Math.random()*255),
    this.b = Math.floor(Math.random()*255),
    this.color1 = 'rgba('+ this.r +','+ this.g +','+ this.b +',0.8)',
    this.$element('testmarquee').start(),
    this.loopval=  this.loopval - 1
Z
zengyawen 已提交
128
  },
Y
yamila 已提交
129 130
  makestart(e) {
    this.$element('testmarquee').start()
Z
zengyawen 已提交
131
  },
Y
yamila 已提交
132 133
  makestop(e) {
    this.$element('testmarquee').stop()
Z
zengyawen 已提交
134 135 136 137
  }
}
```

Y
yamila 已提交
138
![zh-cn_image_0000001176075554](figures/zh-cn_image_0000001176075554.gif)
Z
zengyawen 已提交
139

Z
zengyawen 已提交
140