vaadin / vaadin-combo-box

The Web Component for displaying a list of items with filtering. Part of the Vaadin components.
https://vaadin.com/components
Apache License 2.0
115 stars 87 forks source link

Improve iOS fullscreen UX #40

Closed jouni closed 8 years ago

jouni commented 8 years ago

See if there are ways to enhance the end user experience, compared to the feature/fullscreen-ios branch prototype, including:

jouni commented 8 years ago

iron-dropdown has similar issues, but it tries to prevent user scrolling outside the dropdown element at least. But when you scroll the dropdown itself, the whole page sometimes scrolls as well.

jouni commented 8 years ago

The first two bullet points in the list are closely related, and we should try to find a better solution to that than using a timer to reposition the viewport (by using event.preventDefault() for example). Timebox to 1 person day.

The third bullet point (about input refocusing) can be ignored at the moment, the current workaround in the fullscreen-ios branch is acceptable for 1.0.

tehapo commented 8 years ago

One attempt to fix scrolling issues: https://github.com/vaadin/vaadin-combo-box/tree/feature/ios-fullscreen-part2

Basically this version prevents scrolling on other elements than the iron-list (by using Polymer.IronDropdownScrollManager) and at the same time limits the scroll position of the iron-list to be within 0iron-list._maxScrollTop by listening to touchmove events and using preventDefault when going outside the limits.

Using this approach has some drawbacks with the scrolling UX.

platosha commented 8 years ago

Another attempt: https://github.com/vaadin/vaadin-combo-box/tree/feature/ios-fullscreen-fixed

My approach:

Pros:

Cons:

jouni commented 8 years ago

@tuomasnironen should test each of the prototypes and provide feedback about them in order for us to make a decision on how to improve.

tuomasnironen commented 8 years ago

New direction for the UI decided that no longer contains a fullscreen feature. This will be evaluated separately.