2017-04-25 88 views
1

我有以下的HTML代碼:水平滾動的div與Angular4

<div class="card-deck" fxLayout.xs="row" style="overflow: scroll; height:100%"> 
    <md-card style="width:10rem" *ngFor="let make of filteredMakes" (click)="goToModels(make.niceName)" 
      class="page-card mat-card"> 
     <img md-card-image="" src="assets/img/gallery/brands/256/{{make.name}}.png" class="mat-card-image" /> 
     <md-card-subtitle class="mat-card-title text-center">{{ make.name }}</md-card-subtitle> 
    </md-card> 
</div> 

這是怎麼看起來像手機:

Mobile First

我想創建水平滾動動畫自動到最後一個製造商,但在用戶與其交互時停止。

換句話說:

  1. 用戶打開網頁,看到自動滾動
  2. 用戶理解,這是一個滾動的div,開始用手指來滾動。
  3. 自動滾動,現在是在頁面上禁用(直到用戶重新設置頁面的狀態)

如果我有麻煩:

  1. 如何自動使用JavaScript滾動? (理想情況下,我想控制在一個時間範圍內滾動多少像素,例如50px /秒)
  2. 如何檢測用戶何時與「card-deck」div交互(如手勢:觸摸,幻燈片等)

回答

1

1)自動滾動:你可以使用JS函數setInterval來改變每個x mS div的位置。

2)你可以使用@HostListener註釋(See Angular doc)觀看的用戶互動,並與當點擊事件被觸發

+0

你能告訴我如何做到這一點的jQuery功能角的JS功能clearInterval取消setInterval辦法? ({scrollLeft:'+ = 750'},1000).animate({scrollLeft:'0'},500);' – Moshe