mirror of https://github.com/sveltejs/svelte
[fix] Apply class directive properly after half way transition (#7765)
parent
012d639b42
commit
3570a5361e
@ -0,0 +1,30 @@
|
|||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
open: false,
|
||||||
|
border: true
|
||||||
|
},
|
||||||
|
html: '<p>foo</p>',
|
||||||
|
|
||||||
|
test({ assert, component, target, raf }) {
|
||||||
|
component.open = true;
|
||||||
|
raf.tick(100);
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
'<p>foo</p><p class="red svelte-1yszte8 border" style="">bar</p>'
|
||||||
|
);
|
||||||
|
|
||||||
|
component.open = false;
|
||||||
|
raf.tick(150);
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
'<p>foo</p><p class="red svelte-1yszte8 border" style="animation: __svelte_1333973250_0 100ms linear 0ms 1 both;">bar</p>'
|
||||||
|
);
|
||||||
|
|
||||||
|
component.open = true;
|
||||||
|
raf.tick(250);
|
||||||
|
assert.htmlEqual(
|
||||||
|
target.innerHTML,
|
||||||
|
'<p>foo</p><p class="red svelte-1yszte8 border" style="">bar</p>'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,17 @@
|
|||||||
|
<script>
|
||||||
|
import { slide } from "svelte/transition";
|
||||||
|
export let open = false;
|
||||||
|
export let color = "red";
|
||||||
|
export let border = false;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<p>foo</p>
|
||||||
|
{#if open}
|
||||||
|
<p class={color} class:border transition:slide|local={{ duration: 100 }}>bar</p>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.border {
|
||||||
|
border: 4px solid black;
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in new issue