spatial-navigation icon indicating copy to clipboard operation
spatial-navigation copied to clipboard

Intercept nav events and and prevent consequent logic from unfolding?

Open jayarjo opened this issue 7 years ago • 3 comments

Is there a way to intercept nav events and prevent consequent logic from unfolding? Obviously one can intercept keydown, but that would be cumbersome, would be great if nav events themselves behaved similarly.

jayarjo avatar Jan 28 '19 14:01 jayarjo

@jayarjo Thanks for your feedback! Yes, as you pointed out, there wasn't the procedure about preventing the navigation events in the previous polyfill. I updated the polyfill with https://github.com/WICG/spatial-navigation/pull/156, and now you can prevent the events.

You can see how it works in this demo.

jihyerish avatar Feb 25 '19 06:02 jihyerish

@jihyerish great that there's progress on this! But do you actually reset those global flags back to initial value anywhere? Or they are not meant to?

jayarjo avatar Feb 25 '19 15:02 jayarjo

@jayarjo Yes, the flags are used for defining the prevent default behavior for the navigation events. Those flags are set as true when the events are triggered. And if those flags are set as true, in the processing model flows to the prevented behavior of the corresponding events.

For example, in the polyfill code line 316 -319, it follows the prevented behavior of navbeforescroll.

      if (!navbeforescrollPrevented) {
        moveScroll(container, dir);
        return true;
      }

jihyerish avatar Feb 25 '19 17:02 jihyerish