Closed Bug 1025507 Opened 5 years ago Closed 5 years ago

(vertical-homescreen) Overscroll animation needs some preferences adjusted

Categories

(Core :: Panning and Zooming, defect)

x86
Gonk (Firefox OS)
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla33
feature-b2g -
Tracking Status
firefox31 --- unaffected
firefox32 --- fixed
firefox33 --- fixed
b2g-v2.0 --- fixed
b2g-v2.1 --- fixed

People

(Reporter: pla, Assigned: kats)

References

Details

(Whiteboard: ux-tracking, visual design, visual-tracking, [ft:systemsfe][systemsfe])

Attachments

(1 file)

The overscroll bounce-back is currently too harsh, and feels a bit stiff/unnatural.

UX Suggestion:

1) Reduce the speed of the bounce back slightly.
2) Add a deceleration at the end of the bounce-back (it should land gently back to it's starting location).

I believe doing the above two adjustments is going to make it feel A LOT friendlier, and will have benefits throughout the OS, not just homescreen.
Blocks: 998025
No longer blocks: vertical-homescreen
Component: Gaia::Homescreen → Panning and Zooming
Product: Firefox OS → Core
Gordon/Botond - Does this make sense? Do we need any additional information to make this actionable?
Flags: needinfo?(gbrander)
Flags: needinfo?(botond)
Whiteboard: ux-tracking, visual design, visual-tracking, [ft:systemsfe][systemsfe][2.0-FL-bug-bash] → ux-tracking, visual design, visual-tracking, [ft:systemsfe][systemsfe]
Botond is away at the moment but if tuning is needed I can take care of it. Gordon will have to approve the changes though since we've been working with him as the final UX decision-maker on overscroll-related feel/interaction.
Flags: needinfo?(botond)
It's on my plate for Tues to tune the physics. I feel the current physics are heading in the right direction, but need some tuning.

* Apex can get a bit "caught" sometimes.
* Snapback is a bit to hard.

I think we currently have a stiff spring and high friction. Instead we may go with a loose spring and low friction.
Flags: needinfo?(gbrander)
For reference, the tuneable prefs are documented here [1]; they can be modified temporarily via edit-prefs.sh, and permanently by editing this [2].

[1] http://mxr.mozilla.org/mozilla-central/source/gfx/layers/apz/src/AsyncPanZoomController.cpp?rev=4b5b1689e3a0#219
[2] http://mxr.mozilla.org/mozilla-central/source/b2g/app/b2g.js#965
blocking-b2g: --- → 2.0?
feature-b2g: --- → -
(In reply to Botond Ballo [:botond] (away until July 5) from comment #4)
> For reference, the tuneable prefs are documented here [1]; they can be
> modified temporarily via edit-prefs.sh, and permanently by editing this [2].
> 
> [1]
> http://mxr.mozilla.org/mozilla-central/source/gfx/layers/apz/src/
> AsyncPanZoomController.cpp?rev=4b5b1689e3a0#219
> [2] http://mxr.mozilla.org/mozilla-central/source/b2g/app/b2g.js#965

Oh and to see the current values (to know what order of magnitude values to try with edit-prefs.sh), also look at [2].
Summary: I'm having trouble getting a better feel than what we already, have given the current physics model. However, I think the current feel is a great first pass, with further refinement possible later.

Details:

* Apex can get "caught" for a split hair too long.
* Snapback animation feels a bit hard.

Hypothesis: I think what's happening is that the spring is only engaged during snapback, with only friction being used to slow the fling until it arrives the apex.

An alternative could be to use the spring, both to resist and to cause the content to snap back. Or maybe this would require 2 separate springs (one for resistance, one for snapback)? Further discussion with GFX needed.

Let's try to slot some time in 2.1 for further scrolling refinements. In the meantime, I'll take a couple more passes with the current physics model and see if we can get something that feels right-er.
(In reply to Gordon Brander :gordonb from comment #6)
> Hypothesis: I think what's happening is that the spring is only engaged
> during snapback, with only friction being used to slow the fling until it
> arrives the apex.

That's correct. However, the constants governing the friction (the friction amount and the fling stop threshold) change when the fling goes into overscroll.

> An alternative could be to use the spring, both to resist and to cause the
> content to snap back. Or maybe this would require 2 separate springs (one
> for resistance, one for snapback)? Further discussion with GFX needed.

We could have the fling physics change from friction to spring, or friction + spring, when the fling goes into overscroll.
After discussing with Peter and QA, minusing because we COULD ship with current overscroll. This should get in to 2.0 if possible though, so devs, please mark for approval.
blocking-b2g: 2.0? → ---
Update: can we change the defaults for the following values:

user_pref("apz.overscroll.z_effect", "0.5"); /* Previously 0.02 */
user_pref("apz.overscroll.snap_back.mass", "1200"); /* Previously 1000 */

This gets us closer to the intended visual treatment.
Flags: needinfo?(bugmail.mozilla)
Assignee: nobody → bugmail.mozilla
Attachment #8444618 - Flags: review?(milan)
Flags: needinfo?(bugmail.mozilla)
Attachment #8444618 - Attachment description: 1-lowres-debug-8e03ae1 → Adjust overscroll prefs
Comment on attachment 8444618 [details] [diff] [review]
Adjust overscroll prefs

Review of attachment 8444618 [details] [diff] [review]:
-----------------------------------------------------------------

Technically, I can't r+ things, but given that this is pretty much a r=me type of change, I'm comfortable "breaking" the rules :)
Attachment #8444618 - Flags: review?(milan) → review+
Summary: (vertical-homescreen) Overscroll animation needs some love → (vertical-homescreen) Overscroll animation needs some preferences adjusted
Kats, you will ask for Aurora uplift once this lands?
OS: Mac OS X → Gonk (Firefox OS)
Comment on attachment 8444618 [details] [diff] [review]
Adjust overscroll prefs

[Approval Request Comment]
Bug caused by (feature/regressing bug #): Initial overscroll implementation
User impact if declined: B2G overscroll doesn't feel as natural as it should be
Testing completed (on m-c, etc.): locally so far, gordon also tested locally
Risk to taking this patch (and alternatives if risky): low risk pref change, affects b2g only.
String or IDL/UUID changes made by this patch: none
Attachment #8444618 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/d28474b2947f
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla33
Comment on attachment 8444618 [details] [diff] [review]
Adjust overscroll prefs

Aurora approval granted.
Attachment #8444618 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.