OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 library animation_scroll_behaviour; | |
6 | |
7 import 'dart:math' as math; | 5 import 'dart:math' as math; |
8 import 'mechanics.dart'; | 6 import 'mechanics.dart'; |
9 import 'generators.dart'; | 7 import 'generators.dart'; |
10 | 8 |
11 const double _kScrollFriction = 0.005; | 9 const double _kScrollFriction = 0.005; |
12 const double _kOverscrollFriction = 0.075; | 10 const double _kOverscrollFriction = 0.075; |
13 const double _kBounceSlopeAngle = math.PI / 512.0; // radians | 11 const double _kBounceSlopeAngle = math.PI / 512.0; // radians |
14 | 12 |
15 abstract class ScrollBehavior { | 13 abstract class ScrollBehavior { |
16 Simulation release(Particle particle) => null; | 14 Simulation release(Particle particle) => null; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 // reduce the portion of scrollDelta that's applied beyond 0.0. We | 105 // reduce the portion of scrollDelta that's applied beyond 0.0. We |
108 // do similar things for overscroll in the other direction. | 106 // do similar things for overscroll in the other direction. |
109 if (newScrollOffset < 0.0) { | 107 if (newScrollOffset < 0.0) { |
110 newScrollOffset -= (newScrollOffset - math.min(0.0, scrollOffset)) / 2.0; | 108 newScrollOffset -= (newScrollOffset - math.min(0.0, scrollOffset)) / 2.0; |
111 } else if (newScrollOffset > maxScroll) { | 109 } else if (newScrollOffset > maxScroll) { |
112 newScrollOffset -= (newScrollOffset - math.max(maxScroll, scrollOffset)) /
2.0; | 110 newScrollOffset -= (newScrollOffset - math.max(maxScroll, scrollOffset)) /
2.0; |
113 } | 111 } |
114 return newScrollOffset; | 112 return newScrollOffset; |
115 } | 113 } |
116 } | 114 } |
OLD | NEW |