Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /pointerevents/pointerevent_touch-action-modified_touch.html - WPT Dashboard Interop Dashboard
<!doctype html>
<title>Deleting touch-action:none after pointerdown has no effect</title>
<link rel="help" href="https://w3c.github.io/pointerevents/#determining-supported-direct-manipulation-behavior" />
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="pointerevent_support.js"></script>
<style>
#target {
width: 100px;
height: 150vh;
background-color: lightgreen;
user-select: none;
}
.touchActionNone {
touch-action: none;
}
</style>
<body>
<h1>Deleting touch-action:none after pointerdown has no effect</h1>
<div id="target" class="touchActionNone" draggable="false">
An unscrollable element that becomes scrollable at pointerdown.
</div>
</body>
<script>
"use strict";
let target = document.getElementById("target");
let pointercancel_received = false;
document.body.addEventListener("pointerdown",
() => target.classList.remove("touchActionNone"));
document.body.addEventListener("pointercancel",
() => pointercancel_received = true);
promise_test(async () => {
let pointerup_event = getEvent("pointerup", document.body);
await touchScrollInTarget(target, "down");
await pointerup_event;
// Sanity-check: the class has been removed.
assert_false(target.classList.contains("touchActionNone"));
assert_false(pointercancel_received,
"a pointercancel event is unexpected");
}, "No scrolling after deleting touch-action:none after pointerdown");
</script>