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