<!DOCTYPE HTML >
<html >
<head >
<meta charset="utf-8" >
<meta name="viewport" content="width=device-width, initial-scale=1" >
<title >Test that scroll snap wont't happen on zoomed content
<script src="apz_test_utils.js" ></script >
<script src="apz_test_native_event_utils.js" ></script >
<script src="/tests/SimpleTest/paint_listener.js" ></script >
<style >
body {
margin: 0;
}
html {
overflow-y: scroll;
scroll-snap-type: y proximity;
}
.snap {
width: 100vw;
height: 100vh;
background-color: blue;
position: absolute;
top: 200px;
scroll-snap-align: start;
}
</style >
</head >
<body >
<div class="snap" ></div >
<div style ="width: 100%; height: 500vh;" ></div >
<script type="application/javascript" >
async function test() {
let transformEndPromise = promiseTransformEnd();
// Use scrollToVisual() to scroll visual viewport.
SpecialPowers.DOMWindowUtils.scrollToVisual(
100, 400,
SpecialPowers.DOMWindowUtils.UPDATE_TYPE_MAIN_THREAD,
SpecialPowers.DOMWindowUtils.SCROLL_MODE_SMOOTH);
// Wait for the end of the scroll.
await transformEndPromise;
await waitToClearOutAnyPotentialScrolls();
const pageTop = visualViewport.pageTop;
const pageLeft = visualViewport.pageLeft;
let eventFired = false;
window.visualViewport.addEventListener("scroll" , () => {
eventFired = true;
});
// Trigger a scroll snap, it should nothing.
SpecialPowers.wrap(document.documentElement).mozScrollSnap();
await waitToClearOutAnyPotentialScrolls();
ok(!eventFired, "No visual scroll should happen" );
// Sanity checks to see whether the visual viewport hasn't been changed.
is(visualViewport.pageTop, pageTop);
is(visualViewport.pageLeft, pageLeft);
}
SpecialPowers.DOMWindowUtils.setResolutionAndScaleTo(10.0);
waitUntilApzStable()
.then(test)
.then(subtestDone, subtestFailed);
</script >
</body >
</html >
Messung V0.5 C=95 H=94 G=94
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland