diff --git a/examples/extent-interaction.html b/examples/extent-interaction.html
new file mode 100644
index 0000000000..cce19e3890
--- /dev/null
+++ b/examples/extent-interaction.html
@@ -0,0 +1,12 @@
+---
+layout: example.html
+title: Extent Interaction
+shortdesc: Using an Extent interaction to draw an extent.
+docs: >
+
This example shows how to use an Extent interaction to draw a modifiable extent.
+ Use Shift+Drag to draw an extent.
+ Shift+Drag on the corners or edges of the extent to resize it. Shift+Click off the extent to remove it.
+
+tags: "Extent, interaction, box"
+---
+
diff --git a/examples/extent-interaction.js b/examples/extent-interaction.js
new file mode 100644
index 0000000000..11d5918275
--- /dev/null
+++ b/examples/extent-interaction.js
@@ -0,0 +1,49 @@
+goog.require('ol.Map');
+goog.require('ol.View');
+goog.require('ol.events.condition');
+goog.require('ol.format.GeoJSON');
+goog.require('ol.interaction.Extent');
+goog.require('ol.layer.Tile');
+goog.require('ol.layer.Vector');
+goog.require('ol.source.OSM');
+goog.require('ol.source.Vector');
+
+var vectorSource = new ol.source.Vector({
+ url: 'data/geojson/countries.geojson',
+ format: new ol.format.GeoJSON()
+});
+
+var map = new ol.Map({
+ layers: [
+ new ol.layer.Tile({
+ source: new ol.source.OSM()
+ }),
+ new ol.layer.Vector({
+ source: vectorSource
+ })
+ ],
+ renderer: 'canvas',
+ target: 'map',
+ view: new ol.View({
+ center: [0, 0],
+ zoom: 2
+ })
+});
+
+var extent = new ol.interaction.Extent({
+ condition: ol.events.condition.platformModifierKeyOnly
+});
+map.addInteraction(extent);
+extent.setActive(false);
+
+//Enable interaction by holding shift
+this.addEventListener('keydown', function(event) {
+ if (event.keyCode == 16) {
+ extent.setActive(true);
+ }
+});
+this.addEventListener('keyup', function(event) {
+ if (event.keyCode == 16) {
+ extent.setActive(false);
+ }
+});