【发布时间】:2018-02-06 22:21:41
【问题描述】:
我希望 div 闪烁以防用户点击它。有没有不手动运行 setTimeout 的解决方案?
使用 setTimeout 的解决方案:
app.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<style>
div { transition: background-color 1s; }
div.flashing { background-color: green; transition: none; }
</style>
<div id="app" :class="{'flashing':flashing}" v-on:click="flash">flash when clicked</div>
app.js
const data = { flashing: false }
new Vue({
el: '#app',
data,
methods: { flash }
})
function flash() {
data.flashing = true;
setTimeout(() => data.flashing = false, 100);
}
【问题讨论】:
-
您想在何时/何地设置时间?
-
为什么不用css
:active? -
也许您可以使用 mousedown 和 mouseup 事件而不是 click 事件,然后从 css 转换中受益?
标签: javascript animation vue.js timeout