angular / angular/components

CDK ScrollingModule: scrollToIndex() smooth behavior for all browsers

Ouverte
#13,613 6 commentaires 4 réactions 0 personnes assignées Voir sur GitHub
area: cdk/scrolling feature P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

#### 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**

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner le CDK ScrollingModule et son API de virtual-scroll, en particulier scrollToIndex() et measureScrollOffset(). Comparez le comportement de smooth scrolling signalé dans Chrome, Firefox, Edge et Safari. C’est terminé lorsque le smooth scrolling inter-navigateurs fonctionne via scrollToIndex() ou que l’API expose l’offset de défilement de l’index cible pour une solution de contournement fiable.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.