проблема с интервалом карусели ngb

#html #angularjs #angular #bootstrap-4

#HTML #angularjs #угловой #bootstrap-4

Вопрос:

Я создаю веб-приложение, которое выбирает карту для побега из Таркова. Я использую ngb-carousel для создания своего рода анимации, делающей приложение более визуально привлекательным. Проблема, с которой я сталкиваюсь, заключается в том, что слайды движутся недостаточно быстро. Похоже, что интервал времени после достижения определенной точки перестает двигаться быстрее. Мой вопрос заключается в том, что мой код все равно существует, чтобы ускорить это с помощью ngb-carousel, или я должен попытаться найти другое решение.

сайт, над которым я работаю — https://tarkovmapselector.herokuapp.com /

В настоящее время мой интервал составляет 100 мс

 <div class="has-text-centered" *ngIf="isShow">
    <ngb-carousel [showNavigationArrows]="false"
        [showNavigationIndicators]="false"
        [pauseOnHover]="false"
        [keyboard]="true"
        [wrap]="true"
        [interval]="myInterval">
        <ng-template ngbSlide id="slide1">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Factory
                </div>
                <img src="assets/images/Factory-Day_Banner.png">
            </div>
        </ng-template>
        <ng-template ngbSlide id="slide2">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Customs
                </div>
                <img src="assets/images/Customs_Banner.png">
            </div>
        </ng-template>
        <ng-template ngbSlide id="slide3">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Woods
                </div>
                <img src="assets/images/Banner_woods.png">
            </div>
        </ng-template>
        <ng-template ngbSlide id="slide4">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Shoreline
                </div>
                <img src="assets/images/Banner_shoreline.png">
            </div>
        </ng-template>
        <ng-template ngbSlide id="slide5">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Reserve
                </div>
                <img src="assets/images/Reserve.png">
            </div>
        </ng-template>
        <ng-template ngbSlide id="slide6">
            <div class="picsum-img-wrapper">
                <div class="is-family-code has-text-white is-size-3">
                    Labs
                </div>
                <img src="assets/images/TheLabBanner.png">
            </div>
        </ng-template>
    </ngb-carousel>
</div>
 

Ответ №1:

Я добился этого, как показано ниже. Я создал событие нажатия кнопки как бело

 <button type="button" (click)="setSlideTiming()"
    class="btn btn-outline-dark btn-sm">Auto slide moving</button>
 

Щелкните событие на стороне ts

 //auto slide timing

  setSlideTiming(){
    this.autoSlideMoving = !this.autoSlideMoving;
    if (this.autoSlideMoving===true) {
      this.sliderAnimationSpeed=4000;
    }
    else{
      this.sliderAnimationSpeed=0;
    }
  }
 

и добавьте эту строку в свой тег ng-crousal [interval]="sliderAnimationSpeed" . Основываясь на приведенном выше коде, ваш слайд будет перемещаться один раз в 4 секунды.
Но вы можете изменить значение по мере необходимости.
Пожалуйста, дайте мне знать, если это полезно

Комментарии:

1. вы можете управлять скоростью в собственном html: (click)="sliderAnimationSpeed=!sliderAnimationSpeed?4000:0"