The webkitmouseforcedown event fires when pressure reaches a force click after mousedown. Learn MouseEvent.webkitForce, onwebkitmouseforcedown, how it pairs with webkitmouseforcechanged / forceup, portable alternatives, and five try-it labs.
01
Kind
Instance event
02
Type
MouseEvent
03
When
Force click down
04
Handler
onwebkitmouseforcedown
05
After
mousedown
06
Status
Non-standard
Fundamentals
Introduction
On Force Touch trackpads, pressing harder can trigger a distinct “force click.” After a normal mousedown, when pressure is high enough, Safari sends webkitmouseforcedown—the start of that force-click interaction.
While pressure is changing you may also see webkitmouseforcechanged. When pressure drops out of the force-click range, Safari sends webkitmouseforceup. For cross-browser apps, prefer Pointer Events or a long-press timer instead of relying on Force Touch alone.
💡
Beginner tip
Without Force Touch hardware (or outside Safari), this event usually never fires. Always feature-detect and provide a fallback path in demos and products.
Concept
Understanding webkitmouseforcedown
An instance event for Safari Force Touch force-click start. MDN: after mousedown, when sufficient pressure qualifies as a force click, Safari begins sending webkitmouseforcedown.
Trigger — pressure crossed the force-click threshold (after mousedown).
MouseEvent — use non-standard webkitForce for pressure.
Pair with — webkitmouseforceup when force click ends.
Non-standard — Safari / WebKit proprietary; not Baseline.
Foundation
📝 Syntax
Use the event name with addEventListener, or set the handler property:
Pointer position in the viewport (standard MouseEvent)
Compare
⚖️ Force Touch event family
Event
When it fires
webkitmouseforcewillbegin
Before mousedown (can be default-prevented)
mousedown
Normal mouse down
webkitmouseforcechanged
Each pressure change after mousedown, before mouseup
webkitmouseforcedown
Pressure reached “force click” level
webkitmouseforceup
Pressure dropped out of force-click range
mouseup
Normal mouse up
Cheat Sheet
⚡ Quick Reference
Goal
Code
Listen
el.addEventListener("webkitmouseforcedown", fn)
Handler property
el.onwebkitmouseforcedown = fn
Read pressure
event.webkitForce
Force threshold
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
Portable alternative
Long-press / PointerEvent.pressure
MDN status
Non-standard
Snapshot
🔍 At a Glance
Four facts to remember about webkitmouseforcedown.
Event type
MouseEvent
+ webkitForce
Means
force-click
Down moment
Engine
Safari
Force Touch
Standard?
no
Non-standard
Hands-On
Examples Gallery
Examples follow MDN Element: webkitmouseforcedown event and Apple’s Force Touch docs. Labs feature-detect so they still teach useful lessons without Force Touch hardware.
📚 Getting Started
Register handlers the MDN ways when a force click begins.
Example 1 — addEventListener("webkitmouseforcedown")
Log when Safari reports a force click after mousedown.
JavaScript
const pad = document.getElementById("pad");
const out = document.getElementById("out");
pad.addEventListener("webkitmouseforcedown", () => {
out.textContent = "Force click down";
});
webkitmouseforcedown is marked Non-standard on MDN. Logos use the shared browser-image-sprite.png sprite from this project. Expect Safari on Force Touch hardware only—always ship a long-press or Pointer Events fallback.
✓ Non-standard
Element webkitmouseforcedown
Proprietary WebKit Force Touch force-click-down signal; not a portable primary API.
SafariNot standardized
Google ChromeNo Force Touch events; use long-press / Pointer
No
Mozilla FirefoxNo Force Touch events; use long-press / Pointer
No
Apple SafariForce Touch trackpad / screen (where hardware supports)
WebKit
Microsoft EdgeNo Force Touch events; use long-press / Pointer
No
OperaNo Force Touch events; use long-press / Pointer
No
Internet ExplorerNo
No
webkitmouseforcedownNon-standard
Bottom line: Use Force Touch forcedown only as an optional Safari enhancement; use long-press or PointerEvent.pressure for everyone else.
Wrap Up
Conclusion
webkitmouseforcedown is Safari’s “force click started” signal after mousedown. Pair it with webkitmouseforceup, read webkitForce when useful, and never treat it as a cross-browser requirement.
Feature-detect before attaching Force Touch listeners
Provide a long-press / Pointer fallback for other browsers
Pair forcedown with forceup for enter/exit UI
Keep Force Touch as an optional Safari enhancement
Test on real Force Touch hardware when shipping Safari extras
❌ Don’t
Require webkitmouseforcedown for core product features
Assume Chromium/Firefox will ever fire these events
Confuse force-click down with continuous forcechanged updates
Skip cleanup when the force click ends (forceup)
Hard-code magic force numbers when constants exist
Summary
Key Takeaways
Knowledge Unlocked
Five things to remember about webkitmouseforcedown
Safari force-click started—optional, not portable.
5
Core concepts
💪01
Force click
after mousedown
Event
🖱02
MouseEvent
webkitForce
API
⚖️03
Pair with
forceup
Lifecycle
⏱️04
Prefer
long-press
Portable
🚫05
Non-standard
Safari only
Status
❓ Frequently Asked Questions
After a mousedown has fired, when enough pressure is applied for a “force click,” Safari begins sending webkitmouseforcedown to the element. It is the Force Touch “force click started” signal.
MDN marks Element webkitmouseforcedown as Non-standard only — not Deprecated and not Experimental. It is not part of any web specification. Prefer portable APIs for production.
A MouseEvent (inherits from UIEvent / Event). Read pressure with the non-standard MouseEvent.webkitForce property.
Use element.addEventListener("webkitmouseforcedown", handler), or set onwebkitmouseforcedown where supported. Always feature-detect first.
webkitmouseforcechanged fires repeatedly as pressure changes. webkitmouseforcedown fires when pressure reaches force-click level (after mousedown). webkitmouseforceup fires when pressure drops out of that range.
Prefer Pointer Events (for example long-press timers or PointerEvent.pressure thresholds) with mouse/touch fallbacks. Treat Force Touch as an optional Safari enhancement only.
Did you know?
A force click is stronger than a normal click: MDN compares pressure against MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN. Continuous updates come from webkitmouseforcechanged; the discrete “entered force click” moment is webkitmouseforcedown.