quasar
Version:
Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
174 lines (148 loc) • 5.52 kB
JSON
{
"meta": {
"docsUrl": "https://v2.quasar.dev/vue-directives/morph"
},
"value": {
"type": [ "Object", "Any" ],
"desc": "Configuration object or trigger value",
"definition": {
"group": {
"type": "String",
"desc": "Name of the morph group the element belongs to",
"examples": [ "dialogGroup" ]
},
"name": {
"type": "String",
"desc": "Name of the morph inside the group that the element belongs to",
"examples": [ "btn" ]
},
"model": {
"type": "String",
"desc": "Current value of the group model; when it becomes the same as the 'name' it triggers the morphing",
"examples": [ "btn" ]
},
"duration": {
"type": "Number",
"desc": "Duration of the animation (in milliseconds)",
"default": "300"
},
"delay": {
"type": "Number",
"desc": "Delay for the animation (in milliseconds)",
"default": "0"
},
"easing": {
"type": "String",
"desc": "Timing function for the animation (CSS easing format)",
"default": "ease-in-out",
"examples": [ "ease-out" ]
},
"fill": {
"type": "String",
"desc": "Fill mode for the animation",
"default": "none",
"examples": [ "forward" ]
},
"classes": {
"type": "String",
"desc": "Class names to be added to the destination element during the animation",
"examples": [ "bg-grey-2" ]
},
"style": {
"type": [ "String", "Object" ],
"desc": "Styles to be added to the destination element during the animation",
"examples": [ "border-radius: 20px" ]
},
"resize": {
"type": "Boolean",
"desc": "Use resize instead of scaling during animation"
},
"useCSS": {
"type": "Boolean",
"desc": "Use CSS animations instead of the Animation API"
},
"hideFromClone": {
"type": "Boolean",
"desc": "Hide the spacer for the initial element during animation; Use it if the initial element is not removed or resizing of the space occupied by the initial element is not desired"
},
"keepToClone": {
"type": "Boolean",
"desc": "Keep a clone of the final element visible during animation"
},
"tween": {
"type": "Boolean",
"desc": "Use an opacity tween between the initial and final elements"
},
"tweenFromOpacity": {
"type": "Number",
"desc": "If using tween it is the initial opacity of the initial element (will be animated to 0) - the initial element is placed on top of the final element",
"default": 0.6
},
"tweenToOpacity": {
"type": "Number",
"desc": "If using tween it is the initial opacity of the final element (will be animated to 1)",
"default": 0.5
},
"waitFor": {
"type": [ "Number", "String", "Promise" ],
"desc": "Delay animation start for that number of milliseconds, or until a 'transitionend' event is emitted by the destination element, or until the promise is resolved (if the promise is rejected the morphing will abort, but the `toggle function` was already called)",
"default": "0",
"examples": [ "300", "transitionend" ]
},
"onEnd": {
"type": "Function",
"desc": "A function that will be called once the morphing is finished; Not called if morphing is aborted",
"returns": null,
"params": {
"direction": {
"type": "String",
"desc": "'to' if the morphing was finished in the final state or 'from' if it was finished in the initial state",
"values": [ "to", "from" ]
},
"aborted": {
"type": "Boolean",
"desc": "Was the morphing aborted?"
}
},
"examples": [ "(direction, aborted) => { if (direction !== 'to') { revertLogic() } }" ]
}
},
"examples": [
"v-morph:element2:group1=\"groupModel\"",
"v-morph=\"{ name: 'element2', group: 'group1', model: 'element1' }\""
]
},
"arg": {
"type": "String",
"desc": "x:x2:y:z, where x is the morph element name, x2 is the morph group, y is the animation duration (in milliseconds) and z is the amount of time to wait (in milliseconds) or the 'transitionend' string",
"examples": [
"v-morph:name=\"options\"",
"v-morph:name:groupName=\"options\"",
"v-morph:name:groupName:400=\"options\"",
"v-morph:name:groupName:400:100=\"options\"",
"v-morph:name:groupName:400:transitionend=\"options\""
]
},
"modifiers": {
"resize": {
"type": "Boolean",
"desc": "Use resize instead of scale transform for morph (forceResize option of the morph function)"
},
"useCSS": {
"type": "Boolean",
"desc": "Use CSS animations for morph (forceCssAnimation option of the morph function)"
},
"hideFromClone": {
"type": "Boolean",
"desc": "Hide the spacer for the initial element (hideFromClone option of the morph function)"
},
"keepToClone": {
"type": "Boolean",
"desc": "Keep the final element visible while morphing (keepToClone option of the morph function)"
},
"tween": {
"type": "Boolean",
"desc": "Use opacity tween morphing between initial and final elements (tween option of the morph function)"
}
}
}