加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 离子自定义模态动画

发布时间:2020-12-17 17:21:22 所属栏目:安全 来源:网络整理
导读:离子模态带有滑入式标准动画.我们可以将动画改为淡入吗? 解决方法 为Ionic Modal添加自定义过渡我们将使用Ionic Modal Options enterAnimation和leaveAnimation来自ModalOptions界面.对于模态,有过渡状态:当我们关闭模态时,输入模态和模态的休假.如果您查
离子模态带有滑入式标准动画.我们可以将动画改为淡入吗?

解决方法

为Ionic Modal添加自定义过渡我们将使用Ionic Modal Options enterAnimation和leaveAnimation来自ModalOptions界面.对于模态,有过渡状态:当我们关闭模态时,输入模态和模态的休假.如果您查看Ionic Modal选项界面,您将找到两个选项来为这两种状态添加动画.

export interface ModalOptions {
    showBackdrop?: boolean;
    enableBackdropDismiss?: boolean;
    enterAnimation?: string;
    leaveAnimation?: string;
    cssClass?: string;
}

我们将在模态中使用这些选项来指定我们使用来自ionic-angular的Animation类创建的过渡类.因此,让我们一步一步了解如何创建和自定义动画.

为进入和离开创建2个过渡类:

在进入-translate.transition.ts

import { Animation,PageTransition } from 'ionic-angular';
export class ModalTranslateEnterTransition extends PageTransition {
    public init() {
        const ele = this.enteringView.pageRef().nativeElement;
        const wrapper = new Animation(this.plt,ele.querySelector('.modal-wrapper'));
        wrapper.beforeStyles({ 'transform': 'translateX(100%);','opacity': 1 });
        wrapper.fromTo('transform','translateX(100%)','translateX(0)');
        wrapper.fromTo('opacity',1,1);
        this
            .element(this.enteringView.pageRef())
            .duration(500)
            .easing('cubic-bezier(.1,.7,.1,1)')
            .add(wrapper);
    }
}

在休假,translate.transition.ts

import { Animation,PageTransition } from 'ionic-angular';

export class ModalTranslateLeaveTransition extends PageTransition {

    public init() {
        const ele = this.leavingView.pageRef().nativeElement;
        const wrapper = new Animation(this.plt,ele.querySelector('.modal-wrapper'));
        const contentWrapper = new Animation(this.plt,ele.querySelector('.wrapper'));

        wrapper.beforeStyles({ 'transform': 'translateX(100%)','translateX(0)','translateX(100%)');
        wrapper.fromTo('opacity',1);
        contentWrapper.fromTo('opacity',0);

        this
            .element(this.leavingView.pageRef())
            .duration(500)
            .easing('cubic-bezier(.1,1)')
            .add(contentWrapper)
            .add(wrapper);
    }
}

然后在app.module.ts中导入这些模块

export class AppModule {
    constructor(public config: Config) {
        this.setCustomTransitions();
    }
    private setCustomTransitions() {
        this.config.setTransition('modal-translate-up-enter',ModalTranslateEnterTransition);
        this.config.setTransition('modal-translate-up-leave',ModalTranslateLeaveTransition);
    }
}

并使用以下选项创建模态:

var modal = this.modalCtrl.create(AddToCartModalPage,{
    productId: this.productId,skuId: this.skuId,zipcode: this.zipcode,sellerProfileId: this.sellerProfileId,branchId: this.branchId,changeSeller: this.changeSeller
},{
    showBackdrop: false,enableBackdropDismiss: false,cssClass: 'add-to-cart-modal',enterAnimation: 'modal-translate-up-enter',leaveAnimation: 'modal-translate-up-leave'
});

在此处查找更多信息:
Blog

在这里找到完整的演示库:
Github

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读