Web/API/Element/setCapture

From Get docs

Non-standard This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.


Call this method during the handling of a mousedown event to retarget all mouse events to this element until the mouse button is released or document.releaseCapture() is called.

Warning: This interface never had much cross-browser support and you probably looking for element.setPointerCapture instead, from the Pointer Events API.

Syntax

element.setCapture(retargetToElement);
retargetToElement
If true, all events are targeted directly to this element; if false, events can also fire at descendants of this element.

Example

In this example, the current mouse coordinates are drawn while you mouse around after clicking and holding down on an element.

<html>
<head>
  <title>Mouse Capture Example</title>
  <style type="text/css">
    #myButton {
      border: solid black 1px;
      color: black;
      padding: 2px;
      box-shadow: black 2px 2px;
    }
  </style>
  
  <script type="text/javascript">
    function init() {
      var btn = document.getElementById("myButton");
      if (btn.setCapture) {
        btn.addEventListener("mousedown", mouseDown, false);
        btn.addEventListener("mouseup", mouseUp, false);
      } else {
        document.getElementById("output").innerHTML
          = "Sorry, there appears to be no setCapture support on this browser";
      }
    }
    
    function mouseDown(e) {
      e.target.setCapture();
      e.target.addEventListener("mousemove", mouseMoved, false);
    }
    
    function mouseUp(e) {
      e.target.removeEventListener("mousemove", mouseMoved, false);
    }
    
    function mouseMoved(e) {
      var output = document.getElementById("output");
      output.innerHTML = "Position: " + e.clientX + ", " + e.clientY;
    }
  </script>
</head>
<body onload="init()">
  <p>This is an example of how to use mouse capture on elements in Gecko 2.0.</p>
  <p><a id="myButton" href="#">Test Me</a></p>
  <div id="output">No events yet</div>
</body>
</html>

View Live Examples

Notes

The element may not be scrolled completely to the top or bottom, depending on the layout of other elements.

Specification

Based on Internet Explorer's implementation.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

setCapture

Deprecated'Non-standard'

Chrome

No support No

Edge No support 12 — 79

Notes'

No support 12 — 79

Notes'

Notes' The retargetToElement parameter to Element.setCapture() was introduced in Edge 5.5.

Firefox

Full support Yes

IE Full support 5

Notes'

Full support 5

Notes'

Notes' The retargetToElement parameter to Element.setCapture() was introduced in Internet Explorer 5.5.

Opera

No support No

Safari

?

WebView Android

No support No

Chrome Android

No support No

Firefox Android

?

Opera Android

No support No

Safari iOS

?

Samsung Internet Android

No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.'
Deprecated. Not for use in new websites.
See implementation notes.'
See implementation notes.


See also