[Webkit-unassigned] [Bug 137313] New: Touchmove events do not bubble correctly when container has translate or translate3d applied to it

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 1 14:17:21 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=137313

           Summary: Touchmove events do not bubble correctly when
                    container has translate or translate3d applied to it
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: iOS
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: tedtate at gmail.com


Created an attachment (id=239049)
 --> (https://bugs.webkit.org/attachment.cgi?id=239049&action=review)
Example html file which demonstrates the issue.

Hello all,

I've found an issue on the version of WebKit currently shipping in iOS 8 that seems to cause touchmove events not to bubble when they are inside of containers that have -webkit-transform: translate or translate3d applied.

The issue does not occur on iOS7 or other previous version. I'm unsure of how to test this in WebKit nightly build due to this issue seeming to only manifest itself with touchmove events specifically.

This issue is causing problems with sites that use both the ucarousel and scooch carousel plugins.

----

Steps to Reproduce:

1) Open attached minimal test case HTML either on iOS 8 device or iOS 8 simulator
2) Cause some touchmove events to fire by touching on the cats inside of the fake 'carousel', notice the touchmove counter increasing.
3) Press the 'apply translate3d(-900px, 0px, 0px) to .inner button
4) Attempt to cause some more touch move events on the carousel.

Result:

The touchmove counter no longer increases after '-webkit-transform: translate3d(-900px, 0px, 0px)' is applied to '.inner' element.

Expected Results:

The touchmove events should continue to fire.

----

Workarounds:

Currently there are two workarounds that I know of to fix this issue.

1) Bind an empty handler to an element in the bubbling chain between the source of the touch move and '.inner'. If you press 'enable fix' in the attached test case this is what is enabled.

items.on('touchmove', function(e) {
    return true;
});

2) Add the following CSS to one of the elements in the bubbling chain:

.item { -webkit-transform: translate(0); transform: translate(0); }

----

Additional Resources:

1) Bug Reports:

https://github.com/mobify/scooch/issues/23
https://github.com/nrsedat/uCarousel/issues/1

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list