angular / angular/components

CDK ScrollingModule: scrollToIndex() smooth behavior for all browsers

オープン
#13,613 コメント 6 件 リアクション 4 件 担当者 0 名 GitHub で見る
area: cdk/scrolling feature P3
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

#### Bug, feature request, or proposal:

Feature request

#### What is the expected behavior?

Ability to scroll to index smoothly using `viewPort.scrollToIndex(currIndex, 'smooth')` on all browsers

#### What is the current behavior?

It works on _Chrome_ and _Firefox_ but it doesn't work on _Edge_ and _Safari_

#### What is the use-case or motivation for changing an existing behavior?

Currently, there is no way for the developer to get a cross-browser smooth scrolling with the CDK Virtual Scroll component

Even if the developer has to develop his own smooth scroll function, then he has to get the scroll offset of the target item, which is not possible with the current API

The only available function for measuring the scroll offset is `viewPort.measureScrollOffset('start')` which return the offset of the view, but there is no function to measure the scroll offset of a specific item

We either need `viewPort.measureIndexOffset(index)` function to develop it or a built-in cross-browser smooth scroll feature

In my case I am using the **ScrollingModule** to develop a carousel but the smooth scroll does not work on mobile browsers, Safari and Edge

![test](https://user-images.githubusercontent.com/8130692/46931358-7cd50b80-d053-11e8-946d-a31256347893.gif)

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?

CDK: **7.0.0-beta.1**

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず CDK ScrollingModule とその virtual-scroll API、特に scrollToIndex() と measureScrollOffset() を調査します。Chrome、Firefox、Edge、Safari で報告されている smooth-scroll の挙動を比較します。完了の条件は、scrollToIndex() によるクロスブラウザーの smooth scrolling が機能するか、または信頼できる回避策のために API が対象インデックスのスクロールオフセットを公開することです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。