#16038 closed defect (fixed)
dojox/mobile/ScrollableView: smoothness regression on iOS6
Reported by: | Adrian Vasiliu | Owned by: | Eric Durocher |
---|---|---|---|
Priority: | blocker | Milestone: | 1.8.1 |
Component: | DojoX Mobile | Version: | 1.8.0 |
Keywords: | ios6 | Cc: | jonferraiolo |
Blocked By: | Blocking: |
Description
As several users reported already, the scrolling behavior of dojox/mobile/ScrollableView suffers a regression under iOS6. This is about a slight pause in the scrolling at the end of the touch gesture.
Attachments (1)
Change History (14)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
About the scrollType:2 workaround: with long lists, while it removes the "pause" effect, the speed and general smoothness are less good than they used to be on iOS5 with the default scrollType. Not really surprising, since this is why the default has been chosen this way for iOS...
A better solution is needed for iOS6. See also #16012, which explores the use of "native" scroll as an alternate solution. Other solutions may exist...
comment:3 Changed 10 years ago by
Component: | General → DojoX Mobile |
---|---|
Owner: | set to Eric Durocher |
comment:4 Changed 10 years ago by
Cc: | jonferraiolo added |
---|
comment:5 Changed 10 years ago by
Not completely sure that our issue is exactly the same, but there seem to be a lot of complaints about performance regressions of CSS3 operations in iOS6. The following pure JS/HTML/CSS3 test case (found in forums):
demonstrates that some CSS3 animations (here, based on translate3d) are significantly slower and less smooth on iOS6. It is even much slower on iPhone 4S/iOS6 than on iPhone 4/iOS4.3.3.
Among the workarounds suggested here and there, I have tested:
- replacing "translate3d(x,y,z)" by "translate(x,y) translateZ(z)"
- adding -webkit-perspective: 1000; and -webkit-backface-visibility: hidden;
but as others I have found that these do not do the trick...
comment:6 Changed 10 years ago by
The attached patch seems to fix the problem: it adds a new scrollType that uses -webkit-transition (instead of -webkit-animation) to perform the slide animation. This mode is activated by default only on iOS6 for now, it could probably be used on other devices too but this requires more testing. This new mode can be forced by setting scrollType to 3.
comment:7 Changed 10 years ago by
Keywords: | ios6 added |
---|
comment:8 Changed 10 years ago by
Milestone: | tbd → 1.8.2 |
---|---|
Priority: | undecided → blocker |
Changed 10 years ago by
Attachment: | 16038.patch added |
---|
Use -webkit-transition instead of -webkit-animation on iOS6 - Eric Durocher (IBM, CCLA)
comment:9 Changed 10 years ago by
Milestone: | 1.8.2 → 1.8.1 |
---|
comment:12 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:13 Changed 10 years ago by
iOS 6.0.1 is now out, and at a quick testing it appears the fix on our side is still useful.
Reproduced on iPhone 4S under iOS6. Other users reported it for an iPad2/iOS6.
Workaround: this trouble goes away by setting scrollType:2 (top/left) on the ScrollableView (programmatically or declaratively). Of course, we will try to find a better solution.
Explanation: in Dojo 1.8, the default value of the property ScrollableView.scrollType is 0, in which case it switches automatically the scrolling mechanism depending on the platform. Roughly:
Specifying scrollType:2 instead of the default scrollType:0 forces the use of the same mechanism on iOS than on the other platforms.
Notes: