Skip to content

AnimatedIcon-DEMO


vue
<fv-AnimatedIcon fontSize="36">
</fv-AnimatedIcon>

Present Animation


  1. Scale Down
vue
<fv-AnimatedIcon fontSize="20">
</fv-AnimatedIcon>
  1. Scale X Down
vue
<fv-AnimatedIcon modelValue="scaleXDown" fontSize="20" icon="GlobalNavButton">
</fv-AnimatedIcon>
  1. Scale Y Down
vue
<fv-AnimatedIcon modelValue="scaleYDown" fontSize="20" icon="Pause">
</fv-AnimatedIcon>
  1. Back Scale
vue
<fv-AnimatedIcon modelValue="backScale" fontSize="20" icon="Back">
</fv-AnimatedIcon>
  1. Bounce Rotate
vue
<fv-AnimatedIcon modelValue="bounceRotate" fontSize="20" icon="Settings">
</fv-AnimatedIcon>

AnimatedIcon-With Content


vue
<fv-AnimatedIcon modelValue="bounceRotate" fontSize="20" icon="Settings">
    <template v-slot:content>
        <div style="margin-left: 5px;">Settings</div>
    </template>
</fv-AnimatedIcon>

AnimatedIcon-Customize Animation


vue
<fv-AnimatedIcon :customizeAnimation="animation" fontSize="20" icon="Settings">
</fv-AnimatedIcon>

<script>
data () {
    return {
        animation: {
            enter: {
                transform: 'rotate(-180deg)',
                transition: `transform 0.1s`
            },
            leave: [
                {
                    transform: 'rotate(365deg)',
                    transition: `transform 0.3s`
                },
                {
                    transform: 'rotate(360deg)',
                    transition: `transform 0.1s`
                },
                {
                    transform: 'rotate(0deg)'
                }
            ]
        }
    }
}
</script>
  • Event types include enter, move, down, up, leave and corresponding to the MouseEvent and TouchEvent automatically.

  • Each event can be declared as an object contain styles or an array contain multiple styles object. The transitions of an array will execute in order.

AnimatedIcon-Customize Background


vue
<fv-AnimatedIcon modelValue="scaleYDown" fontSize="20" icon="Pause" background="whitesmoke">
</fv-AnimatedIcon>

AnimatedIcon-Dark Theme


vue
<fv-AnimatedIcon theme="dark" fontSize="20">
</fv-AnimatedIcon>

Properties


PropertyTypeRequiredDefaultDescription
modelValuestringNo'scaleDown'Animation preset name.
iconstringNo'Search'Icon with Fabric-Icon
customizeAnimationbooleanNofalseCustom animation.
backgroundstringNo''Background color.
fontSizenumberNo16See the AnimatedIcon fontSize option.
hideContentbooleanNofalseHide the text content.
themestringNo'global'Theme style. Supports global, light, dark, system, and custom.
disabledbooleanNofalseSee the AnimatedIcon disabled option.
langstringNo"global"See the AnimatedIcon lang option.

Events


EventArgumentsDescription
clickeventAnimatedIcon onclick

Slots


  1. Default

The default slot customizes the icon content.

javascript
<fv-animated-icon>
    <div></div>
</fv-animated-icon>
  1. Content

Customize the text content.

javascript
<fv-animated-icon>
    <template v-slot:content>
        <div>Content</div>
    </template>
</fv-animated-icon>

MIT Licensed