1e41f4b71Sopenharmony_ci# marquee 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci> **说明:** 4e41f4b71Sopenharmony_ci> 从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 5e41f4b71Sopenharmony_ci> 从API version 6开始,仅当文本内容宽度超过跑马灯组件宽度时滚动。 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci跑马灯组件,用于展示一段单行滚动的文字。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 权限列表 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci无 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## 子组件 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci不支持。 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## 属性 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci除支持[通用属性](js-components-common-attributes.md)外,还支持如下属性: 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci| 名称 | 类型 | 默认值 | 必填 | 描述 | 24e41f4b71Sopenharmony_ci| ------------ | ------ | ---- | ---- | ---------------------------------------- | 25e41f4b71Sopenharmony_ci| scrollamount | number | 6 | 否 | 跑马灯每次滚动时移动的最大长度。 | 26e41f4b71Sopenharmony_ci| loop | number | -1 | 否 | 跑马灯滚动的次数。如果未指定,则默认值为-1,当该值小于等于零时表示marquee将连续滚动。 | 27e41f4b71Sopenharmony_ci| direction | string | left | 否 | 设置跑马灯的文字滚动方向,可选值为left和right。 | 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci## 样式 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci除支持[通用样式](js-components-common-styles.md)外,还支持如下样式: 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci| 名称 | 类型 | 默认值 | 必填 | 描述 | 35e41f4b71Sopenharmony_ci| ----------- | -------------------------- | ---------- | ---- | ---------------------------------------- | 36e41f4b71Sopenharmony_ci| color | <color> | \#e5000000 | 否 | 设置跑马灯中文字的文本颜色。 | 37e41f4b71Sopenharmony_ci| font-size | <length> | 37.5 | 否 | 设置跑马灯中文字的文本尺寸。 | 38e41f4b71Sopenharmony_ci| allow-scale | boolean | true | 否 | 设置跑马灯中文字的文本尺寸是否跟随系统设置字体缩放尺寸进行放大缩小。<br/>如果在config描述文件中针对ability配置了fontSize的config-changes标签,则应用不会重启而直接生效。 | 39e41f4b71Sopenharmony_ci| font-weight | number \| string | normal | 否 | 设置跑马灯中文字的字体的粗细,见[text组件font-weight的样式属性](js-components-basic-text.md#样式)。 | 40e41f4b71Sopenharmony_ci| font-family | string | sans-serif | 否 | 设置跑马灯中文字的字体列表,用逗号分隔,每个字体用字体名或者字体族名设置。列表中第一个系统中存在的或者通过[自定义字体](js-components-common-customizing-font.md)指定的字体,会被选中作为文本的字体。 | 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci## 事件 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci除支持[通用事件](js-components-common-events.md)外,还支持如下事件: 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci| 名称 | 参数 | 描述 | 48e41f4b71Sopenharmony_ci| ------ | ---- | ---------------------------------------- | 49e41f4b71Sopenharmony_ci| bounce | - | 当文本滚动到末尾时触发该事件。 | 50e41f4b71Sopenharmony_ci| finish | - | 当完成滚动次数时触发该事件。需要在 loop 属性值大于 0 时触发。 | 51e41f4b71Sopenharmony_ci| start | - | 当文本滚动开始时触发该事件。 | 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci## 方法 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci除支持[通用方法](js-components-common-methods.md)外,还支持如下方法: 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci| 名称 | 参数 | 描述 | 58e41f4b71Sopenharmony_ci| ----- | ---- | ----- | 59e41f4b71Sopenharmony_ci| start | - | 开始滚动。 | 60e41f4b71Sopenharmony_ci| stop | - | 停止滚动。 | 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci## 示例 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci```html 66e41f4b71Sopenharmony_ci<!-- xxx.hml --> 67e41f4b71Sopenharmony_ci<div class="tutorial-page"> 68e41f4b71Sopenharmony_ci <div class="mymarquee"> 69e41f4b71Sopenharmony_ci <marquee style="color: {{color1}}" loop="{{loopval}}" scrollamount="{{scroll}}" direction="{{isleft}}" class="marqueetext" 70e41f4b71Sopenharmony_ci id="testmarquee" onfinish="setfinish"> 71e41f4b71Sopenharmony_ci Life is a journey, not the destination. 72e41f4b71Sopenharmony_ci </marquee> 73e41f4b71Sopenharmony_ci </div> 74e41f4b71Sopenharmony_ci <div style="width: 600px;height: 150px;flex-direction: row;justify-content: space-around;"> 75e41f4b71Sopenharmony_ci <button onclick="makestart" value="start"></button> 76e41f4b71Sopenharmony_ci <button onclick="makestop" value="stop"></button> 77e41f4b71Sopenharmony_ci </div> 78e41f4b71Sopenharmony_ci</div> 79e41f4b71Sopenharmony_ci``` 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci```css 82e41f4b71Sopenharmony_ci/* xxx.css */ 83e41f4b71Sopenharmony_ci.tutorial-page { 84e41f4b71Sopenharmony_ci width: 750px; 85e41f4b71Sopenharmony_ci height: 100%; 86e41f4b71Sopenharmony_ci flex-direction: column; 87e41f4b71Sopenharmony_ci align-items: center; 88e41f4b71Sopenharmony_ci justify-content: center; 89e41f4b71Sopenharmony_ci} 90e41f4b71Sopenharmony_ci.marqueetext { 91e41f4b71Sopenharmony_ci font-size: 37px; 92e41f4b71Sopenharmony_ci} 93e41f4b71Sopenharmony_ci.mymarquee { 94e41f4b71Sopenharmony_ci margin-top: 20px; 95e41f4b71Sopenharmony_ci width:100%; 96e41f4b71Sopenharmony_ci height: 100px; 97e41f4b71Sopenharmony_ci margin-left: 50px; 98e41f4b71Sopenharmony_ci margin-right: 50px; 99e41f4b71Sopenharmony_ci border: 1px solid #dc0f27; 100e41f4b71Sopenharmony_ci border-radius: 15px; 101e41f4b71Sopenharmony_ci align-items: center; 102e41f4b71Sopenharmony_ci} 103e41f4b71Sopenharmony_cibutton{ 104e41f4b71Sopenharmony_ci width: 200px; 105e41f4b71Sopenharmony_ci height: 80px; 106e41f4b71Sopenharmony_ci margin-top: 100px; 107e41f4b71Sopenharmony_ci} 108e41f4b71Sopenharmony_ci``` 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci```js 111e41f4b71Sopenharmony_ci// xxx.js 112e41f4b71Sopenharmony_ciexport default { 113e41f4b71Sopenharmony_ci private: { 114e41f4b71Sopenharmony_ci loopval: 1, 115e41f4b71Sopenharmony_ci scroll: 8, 116e41f4b71Sopenharmony_ci color1: 'red' 117e41f4b71Sopenharmony_ci }, 118e41f4b71Sopenharmony_ci onInit(){ 119e41f4b71Sopenharmony_ci }, 120e41f4b71Sopenharmony_ci setfinish(e) { 121e41f4b71Sopenharmony_ci this.loopval= this.loopval + 1, 122e41f4b71Sopenharmony_ci this.r = Math.floor(Math.random()*255), 123e41f4b71Sopenharmony_ci this.g = Math.floor(Math.random()*255), 124e41f4b71Sopenharmony_ci this.b = Math.floor(Math.random()*255), 125e41f4b71Sopenharmony_ci this.color1 = 'rgba('+ this.r +','+ this.g +','+ this.b +',0.8)', 126e41f4b71Sopenharmony_ci this.$element('testmarquee').start(), 127e41f4b71Sopenharmony_ci this.loopval= this.loopval - 1 128e41f4b71Sopenharmony_ci }, 129e41f4b71Sopenharmony_ci makestart(e) { 130e41f4b71Sopenharmony_ci this.$element('testmarquee').start() 131e41f4b71Sopenharmony_ci }, 132e41f4b71Sopenharmony_ci makestop(e) { 133e41f4b71Sopenharmony_ci this.$element('testmarquee').stop() 134e41f4b71Sopenharmony_ci } 135e41f4b71Sopenharmony_ci} 136e41f4b71Sopenharmony_ci``` 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci 141