UNPKG

@ionic/core

Version:

Base components for Ionic

34 lines (33 loc) • 1.14 kB
import { createAnimation } from '../../../utils/animation/animation'; /** * MD Toast Enter Animation */ export const mdEnterAnimation = (baseEl, position) => { const baseAnimation = createAnimation(); const wrapperAnimation = createAnimation(); const hostEl = baseEl.host || baseEl; const wrapperEl = baseEl.querySelector('.toast-wrapper'); const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`; const top = `calc(8px + var(--ion-safe-area-top, 0px))`; wrapperAnimation.addElement(wrapperEl); switch (position) { case 'top': wrapperEl.style.top = top; wrapperAnimation.fromTo('opacity', 0.01, 1); break; case 'middle': const topPosition = Math.floor(hostEl.clientHeight / 2 - wrapperEl.clientHeight / 2); wrapperEl.style.top = `${topPosition}px`; wrapperAnimation.fromTo('opacity', 0.01, 1); break; default: wrapperEl.style.bottom = bottom; wrapperAnimation.fromTo('opacity', 0.01, 1); break; } return baseAnimation .addElement(hostEl) .easing('cubic-bezier(.36,.66,.04,1)') .duration(400) .addAnimation(wrapperAnimation); };