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