Создайте модальное окно в ионном режиме, но представьте его по-своему

Я хотел бы использовать Ionic modalController для создания модального окна из внешней страницы, но вместо вызова modal.present () я хотел бы присоединить созданный модальный компонент к значению y события панорамирования.

Эффект, который я хочу получить, - это перетаскивание пользователем модального окна вверх из ручки ящика, которая является нижним колонтитулом.

Ниже приведен урезанный код, это упрощенная версия, и я понимаю, что она неполная, но она служит для демонстрации того, что я хочу сделать для этого вопроса.

export class MyPage {

  myModal: any;

  constructor(public elementRef: ElementRef, public modalCtrl: ModalController) { }

  ngAfterViewInit() {

    let hammer = new window['Hammer'](this.elementRef.nativeElement);
    hammer.get('pan').set({ direction: window['Hammer'].DIRECTION_VERTICAL });

    hammer.on('panstart', (event) => {
      this.onPanstart(event);
    });

    hammer.on('pan', (event) => {
      this.onPan(event);
    });
  }

  onPanstart(event) {
    this.myModal = this.modalCtrl.create('MyModalPage');
  };

  onPan(event) {
    // This is where I am stuck...
    // Rather than calling modal present,
    // I want to allow the modal to be draggable.

    this.myModal.y = event.center.y;
  };
}

Существует этот отличный учебник Джоша Морони, который исследует, что я пытаюсь сделать, но решающее различие состоит в том, что мне нужно использовать модальную страницу для моей реализации и компонент ion-footer в качестве дескриптора ящика.

Создайте модальное окно в ионном режиме, но представьте его по-своему

Я не уверен, как я могу использовать объект, возвращенный из ModalController.create (), или как применить css для позиционирования модального окна. Любая помощь очень ценится.

Пробовал this.renderer.setElementStyle(this.playingNowModal, 'top', event.center.y+'px !important'); ... Не получилось.

juliusbangert 18.06.2018 22:06

Можете ли вы поделиться макетом пользовательского интерфейса целевого пользовательского опыта в этом случае?

Sergey Rudenko 18.06.2018 23:50

@SergeyRudenko, я отредактировал вопрос, чтобы добавить пример моего целевого UX .. это, по сути, выдвижной выдвижной модальный ящик .. Как вкладка Играть сейчас в мобильном приложении Spotify. Вы можете смахнуть или потянуть вверх вкладку, открывающую модальную страницу.

juliusbangert 19.06.2018 12:54
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
3
206
0

Другие вопросы по теме