JavaScript MouseEvent WEBKIT_FORCE_AT_MOUSE_DOWN Property

Beginner
⏱️ 10 min read
📚 Updated: Jul 2026
🎯 5 Examples
🚀 5 Try-it labs
Non-standard
Static property

What You’ll Learn

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a static numeric constant: the minimum force for a normal click on supporting WebKit browsers. Learn how to read it safely, how it differs from the force-click threshold, how it pairs with webkitForce, and five try-it labs.

01

Kind

Static property

02

Returns

Number (when present)

03

Status

Non-standard

04

Engine

WebKit / Safari

05

Means

Normal-click threshold

06

Access

On MouseEvent

Introduction

WebKit’s Force Touch helpers expose two static cutoffs on MouseEvent. The lighter one—WEBKIT_FORCE_AT_MOUSE_DOWN—is the minimum force treated as a normal click. The heavier constant is for a force click.

Because this value is static, you always write:

JavaScript
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
💡
Beginner tip

Think of two stair steps: a soft press reaches the normal-click step; a harder press reaches the force-click step (WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN).

Understanding the Static Property

MDN: a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a normal click.

  • Static — read from MouseEvent, not from event.
  • Number — a force threshold (when the property exists).
  • Non-standard — not in any official web specification.
  • Force Touch family — related to webkitForce and WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN.

📝 Syntax

JavaScript
const threshold = MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;

Value

A number representing the normal-click force threshold on supporting engines. If the property is missing, feature detection should treat it as unavailable.

Correct vs incorrect access

JavaScript
// Correct — static on MouseEvent
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;

// Incorrect — not an instance property
someMouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN; // usually undefined

⚖️ Related WebKit Force Helpers

APIKindRole
MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWNStaticMinimum force for a normal click
MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWNStaticMinimum force for a force click
event.webkitForceInstanceCurrent force on that mouse event

Typical check on Safari with Force Touch: if event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN, the press meets the normal-click force band (after confirming the APIs exist). A still-higher force may cross the force-click constant.

⚡ Quick Reference

GoalCode
Feature-detect"WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent
Read thresholdMouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
Compare live forceevent.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN
Force-click thresholdMouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN
MDN statusNon-standard (WebKit proprietary)

🔍 At a Glance

Four facts about this static constant.

Kind
static

On MouseEvent

Type
number

When present

Status
non-standard

WebKit only

Use for
normal click

Threshold compare

Examples Gallery

Examples follow MDN MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN. On non-WebKit browsers, expect the property to be missing—that is normal.

📚 Getting Started

Feature-detect and read the static constant.

Example 1 — Feature Detection

Always check before reading a non-standard static.

JavaScript
const supported =
  typeof MouseEvent !== "undefined" &&
  "WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent;

console.log(supported); // true on some Safari/WebKit builds, else false
Try It Yourself

How It Works

The in operator asks whether the constructor exposes that static name. Most engines answer false.

Example 2 — Read the Threshold Safely

Branch on support, then log the number.

JavaScript
if ("WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent) {
  console.log(MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN);
  console.log(typeof MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN);
} else {
  console.log("not supported");
}
Try It Yourself

How It Works

On supporting Safari, you should see a numeric threshold and typeof "number". Elsewhere, the fallback message runs.

📈 Thresholds, Instances & Live Force

Compare constants, avoid instance access, use webkitForce.

Example 3 — Compare Both Static Thresholds

Normal-click threshold is typically lower than the force-click threshold.

JavaScript
const hasForce =
  "WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent &&
  "WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN" in MouseEvent;

if (hasForce) {
  const normal = MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;
  const force = MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN;
  console.log(normal, force);
  console.log(force > normal); // typically true
} else {
  console.log("thresholds unavailable");
}
Try It Yourself

How It Works

Both constants live on MouseEvent. When present, the force-click value is meant to be stricter than a normal press.

Example 4 — Not Available on Event Instances

MDN: always use the static form on MouseEvent.

JavaScript
const event = new MouseEvent("mousedown");

console.log("on constructor:", "WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent);
console.log("on instance:", event.WEBKIT_FORCE_AT_MOUSE_DOWN);
console.log("hasOwn on instance:", Object.prototype.hasOwnProperty.call(
  event,
  "WEBKIT_FORCE_AT_MOUSE_DOWN"
));
Try It Yourself

How It Works

Even when the static exists on Safari, instances still should not be your lookup path. Teach beginners: static → constructor; live force → event.webkitForce.

Example 5 — Compare webkitForce to the Threshold

Pattern for a normal-click force check (runs only where APIs exist).

JavaScript
function meetsNormalClickForce(event) {
  if (
    !("WEBKIT_FORCE_AT_MOUSE_DOWN" in MouseEvent) ||
    typeof event.webkitForce !== "number"
  ) {
    return false;
  }
  return event.webkitForce >= MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN;
}

// Demo with a synthetic event (webkitForce usually absent):
const fake = new MouseEvent("mousedown");
console.log(meetsNormalClickForce(fake)); // false on most browsers

document.addEventListener("mousedown", (e) => {
  if (meetsNormalClickForce(e)) {
    console.log("meets normal-click force");
  }
});
Try It Yourself

How It Works

Guard both the static threshold and event.webkitForce. Without Force Touch hardware and WebKit support, the helper correctly returns false.

🚀 Common Use Cases

  • Learning WebKit Force Touch APIs while reading Safari-only code.
  • Feature-detecting normal-click force thresholds in experimental Safari demos.
  • Comparing event.webkitForce against the lighter static cutoff.
  • Contrasting normal vs force-click bands with WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN.
  • Teaching the difference between static constants and instance event fields.

🔧 How It Works

1

Engine exposes MouseEvent

WebKit may attach Force Touch static constants.

Engine
2

Read the normal-click threshold

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN

Static
3

Read live force on events

Use event.webkitForce during mouse handlers.

Instance
4

Compare and branch

Normal click if live force meets or exceeds this threshold.

📝 Notes

Limited / Non-standard Support

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a Non-standard WebKit proprietary static. Logos use the shared browser-image-sprite.png sprite. Expect support mainly in Safari/WebKit Force Touch contexts; Chromium and Firefox typically omit it.

Non-standard · WebKit

WEBKIT_FORCE_AT_MOUSE_DOWN

Normal-click force threshold constant. Feature-detect; do not require it for Chrome/Firefox users.

Limited WebKit-oriented
Google Chrome Typically not available
No support
Mozilla Firefox Typically not available
No support
Apple Safari WebKit Force Touch builds may expose it
Limited
Microsoft Edge Typically not available (Chromium)
No support
Opera Typically not available
No support
Internet Explorer Not available
No support
WEBKIT_FORCE_AT_MOUSE_DOWN Limited

Bottom line: Static Force Touch normal-click threshold on MouseEvent in WebKit; missing elsewhere.

Conclusion

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a WebKit-only static number: the normal-click force cutoff. Read it from MouseEvent, detect support first, and compare against event.webkitForce only in experimental Safari scenarios.

Continue with altKey, WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, or the JavaScript hub.

💡 Best Practices

✅ Do

  • Feature-detect with in MouseEvent
  • Access the constant on MouseEvent only
  • Pair with event.webkitForce when both exist
  • Compare with the force-click constant when classifying presses
  • Prefer standard Pointer Events pressure when possible

❌ Don’t

  • Ship production UX that requires this constant
  • Read it from a MouseEvent instance
  • Assume Chrome or Firefox expose WebKit Force Touch statics
  • Skip detection and throw when the property is missing
  • Confuse normal vs force thresholds

Key Takeaways

Knowledge Unlocked

Five things to remember about this static

WebKit normal-click force threshold—detect before you use it.

5
Core concepts
🔢 02

Static

on MouseEvent

Kind
📈 03

Number

lighter threshold

Value
👆 04

Pair with

webkitForce

Use
🛡️ 05

Detect first

fallback always

Safety

❓ Frequently Asked Questions

It is a proprietary WebKit static numeric property on MouseEvent. Its value is the minimum force needed for a normal click. Always read it as MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN, not on an event instance.
MDN marks it Non-standard — not part of any web specification. It is not labeled Deprecated or Experimental on that MDN page, but non-standard APIs should not be relied on in production cross-browser code.
WEBKIT_FORCE_AT_MOUSE_DOWN is the lighter threshold for a normal click. WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is the higher threshold for a force click. When both exist, the force-click value is typically greater.
Because it is a static property of the MouseEvent constructor/interface. Instance events do not carry this constant; reading event.WEBKIT_FORCE_AT_MOUSE_DOWN is typically undefined.
MouseEvent.webkitForce reports the current force on a mouse event. Compare that value to WEBKIT_FORCE_AT_MOUSE_DOWN to see if the press meets a normal-click force threshold on supporting Safari/WebKit builds.
Only behind feature detection for Safari/WebKit Force Touch experiments. Prefer Pointer Events force/pressure where available for broader, more standard approaches.
Did you know?

MDN groups this constant with Force Touch events and notes it is not part of any specification—Apple documented it historically in Mac developer materials. Together with the force-click constant, it forms a two-step ladder for classifying press strength on supporting trackpads.

Next: MouseEvent.altKey

Learn the Alt/Option modifier boolean on mouse events.

altKey →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

5 people found this page helpful