Could you just set `pointer-events:none` in the capture handler? That
blocks events and :hover.

http://jsbin.com/mafatihu/2/edit


On Thu, Feb 20, 2014 at 1:40 PM, Sergey Shevchenko <[email protected]>wrote:

> Hi all,
>
> This is not strictly Polymer-related, but I've encountered this in the
> context of writing a Polymer element, and I thought that I could use the
> expertise here.
>
> I'm writing a general-purpose overlay element that can auto-close on an
> outside click and also can be modal (both features are configurable via
> attributes). For auto-close, I'm attaching a capture phase on-click handler
> to document; the handler stops event propagation and thus blocks the event
> from reaching the original target:
>
>
>    // For all events to intercept/block:
>   document.addEventListener(event, handler, true);
>
>   function handler(e) {
>     if (!isPointInOverlay(e.client)) {
>       if (modal) {
>         e.stopPropagation();
>         e.preventDefault();
>       }
>       if (autoClose) {
>         closeOverlay();
>       }
>     }
>   }
>
> With this, I've been able to successfully block click,
> mousedown/up/enter/leave/over/out, contextmenu, and everything else I
> needed in order to effectively disable the rest of the UI, except one
> thing: the :hover style still gets applied to the elements which have it
> defined. Is there a DOM event to intercept in order to prevent that? As
> mentioned, blocking mouseenter/leave/over/out doesn't seem to affect :hover.
>
> I could probably use the standard technique of placing a transparent
> blocking <div> over the entire UI, but since I already need a capture
> handler for auto-closing, I thought I could reuse that.
>
> Thanks,
> --Sergey
>
>  Follow Polymer on Google+: plus.google.com/107187849809354688692
> ---
> You received this message because you are subscribed to the Google Groups
> "Polymer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/polymer-dev/241b9355-9f0e-41cd-8b20-3b015a6d638e%40googlegroups.com
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CACGqRCBB9hNpb%3D6q9iAv4PC9wuNzF%3DTM6hm1P-y4xBjMbr31tw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to