場合によってはアニメーションを無効にする方法はありますか?ここトランジションアニメーションを無効にする
https://jsfiddle.net/4b3nxv7n/
<div id="flip-list-demo" class="demo" :class="{'animate': animate}">
<button v-on:click="shuffle">Shuffle</button>
<input type="checkbox" v-model="animate"/>
<transition-group name="flip-list" tag="ul">
<li v-for="item in items" v-bind:key="item">
{{ item }}
</li>
</transition-group>
</div>
new Vue({
el: '#flip-list-demo',
data: {
animate: true,
items: [1,2,3,4,5,6,7,8,9]
},
methods: {
shuffle: function() {
this.items = _.shuffle(this.items)
}
}
})
.animate .flip-list-move {
transition: transform 1s;
}
アニメーションを切り替えるためのチェックボックスを有する修飾遷移族例です。私はcssクラスを使用して、必要なときにアニメーションを無効にします。一般的には問題なく動作しますが、バグがあります: チェックボックスをオフにしてから「シャッフル」をクリックしてチェックボックスをオンにすると、アニメーションはまだ動作しません。 Chrome Devツールを使って見る限り、移行クラスはこのケースの要素には適用されません。
これを解決するもう一つの方法は、移行名プロパティを変更することでした。しかし、私は同じバグがあります。 https://jsfiddle.net/61vLtaxn/
<div id="flip-list-demo" class="demo">
<button v-on:click="shuffle">Shuffle</button>
<input type="checkbox" v-model="animate"/>
<transition-group :name="transitionName" tag="ul">
<li v-for="item in items" v-bind:key="item">
{{ item }}
</li>
</transition-group>
</div>
new Vue({
el: '#flip-list-demo',
data: {
animate: true,
items: [1,2,3,4,5,6,7,8,9]
},
computed: {
transitionName: function() {
return this.animate ? 'flip-list' : 'disabled-list'
}
},
methods: {
shuffle: function() {
this.items = _.shuffle(this.items)
}
}
})
.flip-list-move {
transition: transform 1s;
}
私は移行について何かを間違って理解したり、これはVUEバグですか?
それは、Mac/Chromeで私のために動作しません@RoyJそれは、Mac /クローム –
に私のために動作します。フィドルを実行し、何かをする前に再現するための手順に従ってください。 Grigory、私はそれがバグだと思うよ – thanksd
あなたはそうだ:私はボックスのチェックを外す前にシャッフルした。最初にシャッフルすると、チェックを入れたり外したりすることができ、シャッフルは期待通りに機能します。シャッフルする前にチェックを外すと、決して移行が行われません。 –