模板里 loop="1" 渲染失效?用 ref 直接修改 DOM property 解决
vue 项目使用 marquee 文字轮播,设置 loop="1" 时无效,渲染为 loop:
<marquee loop="1">测试得数据</marquee>
html 渲染为(loop 属性丢失了值,致使 loop="1" 失效):
<marquee loop>测试得数据</marquee>
通过 vue ref 直接修改 marquee 元素的 loop property:
<template>
<div>
<marquee ref="marqueeEl">测试得数据</marquee>
<button @click="setLoop">设置循环 1 次</button>
</div>
</template>
<script>
export default {
methods: {
setLoop() {
this.$refs.marqueeEl.loop = 1;
}
}
};
</script>
问题解决。
| 写法 | 效果 |
|---|---|
| 模板 loop="1" | 属性值被吞,渲染为无值 loop,循环次数失效 |
| ref 修改 loop = 1 | 直接设置 DOM property,数值生效,滚动 1 次后停止 |