mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
fix(tap): Deactivate elements during scroll at the same time click is ignored, #997
Previously I disabled the activation class immediately on a touchmove, where as the click will still work if you touchstart and touchend within a few pixels of each other. So visually it may have looked like the click shouldn't have worked. I just updated it so the use the same numbers. For example, if you hold down an item and move just 5 pixels, the item will stay active (before it wouldn't have), and the click will fire. But at the same time, if you hold down an item, and move a larger distance, once it realizes that it went farther than 6 pixels it'll not allow a click to happen, AND it'll not show the item as being active.
This commit is contained in:
@@ -71,16 +71,16 @@ describe('Ionic Tap', function() {
|
||||
it('Should setStart and hasScrolled true if >= touch tolerance', function() {
|
||||
ionic.tap.setStart({ clientX: 100, clientY: 100 });
|
||||
|
||||
var s = ionic.tap.hasScrolled({ clientX: 105, clientY: 100 });
|
||||
var s = ionic.tap.hasScrolled({ clientX: 111, clientY: 100 });
|
||||
expect(s).toEqual(true);
|
||||
|
||||
s = ionic.tap.hasScrolled({ clientX: 95, clientY: 100 });
|
||||
s = ionic.tap.hasScrolled({ clientX: 89, clientY: 100 });
|
||||
expect(s).toEqual(true);
|
||||
|
||||
s = ionic.tap.hasScrolled({ clientX: 100, clientY: 103 });
|
||||
s = ionic.tap.hasScrolled({ clientX: 100, clientY: 107 });
|
||||
expect(s).toEqual(true);
|
||||
|
||||
s = ionic.tap.hasScrolled({ clientX: 100, clientY: 97 });
|
||||
s = ionic.tap.hasScrolled({ clientX: 100, clientY: 93 });
|
||||
expect(s).toEqual(true);
|
||||
|
||||
s = ionic.tap.hasScrolled({ clientX: 100, clientY: 200 });
|
||||
|
||||
Reference in New Issue
Block a user