async function test() { var config = getHitTestConfig(); var utils = config.utils;
// Async scroll the page by 50 pixels. The scroll does not move
// the fixed element.
utils.setAsyncScrollOffset(document.documentElement, 0, 50);
// Tick the refresh driver once to make sure the compositor has applied the
// async scroll offset (for WebRender hit-testing we need to make sure WR has
// the latest info).
utils.advanceTimeAndRefresh(16);
utils.restoreNormalRefresh();
let clickPromise = new Promise(resolve => {
target.addEventListener("click", e => {
ok(true, "Target was hit");
e.stopPropagation(); // do not propagate event to |fixed| ancestor
resolve();
});
fixed.addEventListener("click", () => {
// Since target's listener calls stopPropagation(), if we get here
// then the coordinates of the click event did not correspond to
// |target|, but somewhere else on |fixed|.
ok(false, "Fixed ancestor should not be hit");
resolve();
});
});
// Synthesize a click at (110, 110), which should hit |target| (a
// descendant of |fixed|) regardless of the async scroll.
await synthesizeNativeMouseEventWithAPZ({
type: "click",
target: window,
offsetX: 110,
offsetY: 110
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.