Print Friendly

# Class Ext.Resizable

Package: | Ext
Class: | Resizable
Extends: | Observable
Defined In: | Resizable.js

Applies drag handles to an element to make it resizable. The drag handles are inserted into the element and positioned absolute. Some elements, such as a textarea or image, don't support this. To overcome that, you can wrap the textarea in a div and set "resizeChild" to true (or to the id of the element), or set wrap:true in your config and the element will be wrapped for you automatically.

Here is the list of valid resize handles:

    Value   Description
    ------  -------------------
     'n'     north
     's'     south
     'e'     east
     'w'     west
     'nw'    northwest
     'sw'    southwest
     'se'    southeast
     'ne'    northeast
     'all'   all

Here's an example showing the creation of a typical Resizable:

    var resizer = new Ext.Resizable("element-id", {
        handles: 'all',
        minWidth: 200,
        minHeight: 100,
        maxWidth: 500,
        maxHeight: 400,
        pinned: true
    });
    resizer.on("resize", myHandler);

To hide a particular handle, set its display to none in CSS, or through script:
resizer.east.setDisplayed(false);

Properties - Methods - Events - Config Options

## Public Properties

This class has no public properties.

## Public Methods

Method | Defined By
--- | ---
| Resizable(`String/HTMLElement/Ext.Element el`, `Object config`) | Resizable
Create a new resizable component
| addEvents(`Object object`) : void | Observable
Copies any events from the passed object onto this object if they do not already exist. The passed object must also ...
| addListener(`String eventName`, `Function handler`, [`Object scope`], [`Object options`]) : void | Observable
Appends an event handler to this component
| fireEvent(`String eventName`, `Object... args`) : Boolean | Observable
Fires the specified event with the passed parameters (minus the event name).
| hasListener(`String eventName`) : Boolean | Observable
Checks to see if this object is currently listening for a specified event
| on(`String eventName`, `Function handler`, [`Object options`]) : void | Observable
Appends an event handler to this element (shorthand for addListener)
| purgeListeners() : void | Observable
Removes all listeners for this object
| removeListener(`String eventName`, `Function handler`, [`Object scope`]) : void | Observable
Removes a listener
| un(`String eventName`, `Function handler`, [`Object scope`]) : void | Observable
Removes a listener (shorthand for removeListener)

## Public Events

This class has no public events.

## Config Options

Config Options | Defined By
--- | ---
| adjustments : Array/String | Resizable
String "auto" or an array [width, height] with values to be added to the resize operation's new size (defaults to [0,...
| animate : Boolean | Resizable
True to animate the resize (not compatible with dynamic sizing, defaults to false)
| disableTrackOver : Boolean | Resizable
True to disable mouse tracking. This is only applied at config time. (defaults to false)
| draggable : Boolean | Resizable
Convenience to initialize drag drop (defaults to false)
| duration : Number | Resizable
Animation duration if animate = true (defaults to .35)
| dynamic : Boolean | Resizable
True to resize the element while dragging instead of using a proxy (defaults to false)
| easing : String | Resizable
Animation easing if animate = true (defaults to 'easingOutStrong')
| enabled : Boolean | Resizable
False to disable resizing (defaults to true)
| handles : Boolean/String | Resizable
String consisting of the resize handles to display (defaults to false)
| height : Number | Resizable
The height of the element in pixels (defaults to null)
| heightIncrement : Number | Resizable
The increment to snap the height resize in pixels (dynamic must be true, defaults to 0)
| maxHeight : Number | Resizable
The maximum height for the element (defaults to 10000)
| maxWidth : Number | Resizable
The maximum width for the element (defaults to 10000)
| minHeight : Number | Resizable
The minimum height for the element (defaults to 5)
| minWidth : Number | Resizable
The minimum width for the element (defaults to 5)
| minX : Number | Resizable
The minimum allowed page X for the element (only used for west resizing, defaults to 0)
| minY : Number | Resizable
The minimum allowed page Y for the element (only used for north resizing, defaults to 0)
| multiDirectional : Boolean | Resizable
Deprecated. The old style of adding multi-direction resize handles, deprecated in favor of the handles config option ...
| pinned : Boolean | Resizable
True to ensure that the resize handles are always visible, false to display them only when the user mouses over the r...
| preserveRatio : Boolean | Resizable
True to preserve the original ratio between height and width during resize (defaults to false)
| resizeChild : Boolean/String/Element | Resizable
True to resize the first child, or id/element to resize (defaults to false)
| transparent : Boolean | Resizable
True for transparent handles. This is only applied at config time. (defaults to false)
| width : Number | Resizable
The width of the element in pixels (defaults to null)
| widthIncrement : Number | Resizable
The increment to snap the width resize in pixels (dynamic must be true, defaults to 0)
| wrap : Boolean | Resizable
True to wrap an element with a div if needed (required for textareas and images, defaults to false)

## Constructor Details

### Resizable

`public function Resizable(`String/HTMLElement/Ext.Element el`, `Object config`)`
Create a new resizable component
Parameters:

- `el` : String/HTMLElement/Ext.Element
  The id or element to resize
- `config` : Object
  configuration options

## Method Details

### addEvents

`public function addEvents(`Object object`)`
Copies any events from the passed object onto this object if they do not already exist. The passed object must also inherit from Observable for this method to have any effect.
Parameters:

- `object` : Object
  The object from which to copy events

Returns:

- `void`

This method is defined by Observable.

### addListener

`public function addListener(`String eventName`, `Function handler`, [`Object scope`], [`Object options`])`
Appends an event handler to this component
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The method the event invokes
- `scope` : Object
  (optional) The scope in which to execute the handler function. The handler function's "this" context.
- `options` : Object
  (optional) An object containing handler configuration properties. This may contain any of the following properties:
  - scope {Object} The scope in which to execute the handler function. The handler function's "this" context.
  - delegate {String} A simple selector to filter the target or look for a descendant of the target
  - stopEvent {Boolean} True to stop the event. That is stop propagation, and prevent the default action.
  - preventDefault {Boolean} True to prevent the default action
  - stopPropagation {Boolean} True to prevent event propagation
  - normalized {Boolean} False to pass a browser event to the handler function instead of an Ext.EventObject
  - delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.
  - single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.
  - buffer {Number} Causes the handler to be scheduled to run in an Ext.util.DelayedTask delayed by the specified number of milliseconds. If the event fires again within that time, the original handler is not invoked, but the new handler is scheduled in its place.

  Combining Options
  Using the options argument, it is possible to combine different types of listeners:
  A normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)

  Code:

      el.on('click', this.onClick, this, { single: true, delay: 100, stopEvent : true, forumId: 4 });

  The method also allows for a single argument to be passed which is a config object containing properties which specify multiple handlers.

  Attaching multiple handlers in 1 call
  Code:

      el.on({ 'click' : { fn: this.onClick scope: this, delay: 100 }, 'mouseover' : { fn: this.onMouseOver scope: this }, 'mouseout' : { fn: this.onMouseOut scope: this } });

  Or a shorthand syntax:
  Code:

      el.on({ 'click' : this.onClick, 'mouseover' : this.onMouseOver, 'mouseout' : this.onMouseOut scope: this });

Returns:

- `void`

This method is defined by Observable.

### fireEvent

`public function fireEvent(`String eventName`, `Object... args`)`
Fires the specified event with the passed parameters (minus the event name).
Parameters:

- `eventName` : String
- `args` : Object...
  Variable number of parameters are passed to handlers

Returns:

- `Boolean`
  returns false if any of the handlers return false otherwise it returns true

This method is defined by Observable.

### hasListener

`public function hasListener(`String eventName`)`
Checks to see if this object is currently listening for a specified event
Parameters:

- `eventName` : String
  The name of the event to check for

Returns:

- `Boolean`
  True if the event is being listened for, else false

This method is defined by Observable.

### on

`public function on(`String eventName`, `Function handler`, [`Object options`])`
Appends an event handler to this element (shorthand for addListener)
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The method the event invokes
- `options` : Object
  (optional)

Returns:

- `void`

This method is defined by Observable.

### purgeListeners

`public function purgeListeners()`
Removes all listeners for this object
Parameters:

- None.

Returns:

- `void`

This method is defined by Observable.

### removeListener

`public function removeListener(`String eventName`, `Function handler`, [`Object scope`])`
Removes a listener
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The handler to remove
- `scope` : Object
  (optional) The scope (this object) for the handler

Returns:

- `void`

This method is defined by Observable.

### un

`public function un(`String eventName`, `Function handler`, [`Object scope`])`
Removes a listener (shorthand for removeListener)
Parameters:

- `eventName` : String
  The type of event to listen for
- `handler` : Function
  The handler to remove
- `scope` : Object
  (optional) The scope (this object) for the handler

Returns:

- `void`

This method is defined by Observable.

## Config Details

### adjustments

`adjustments : Array/String`
String "auto" or an array [width, height] with values to be added to the resize operation's new size (defaults to [0, 0])
This config option is defined by Resizable.

### animate

`animate : Boolean`
True to animate the resize (not compatible with dynamic sizing, defaults to false)
This config option is defined by Resizable.

### disableTrackOver

`disableTrackOver : Boolean`
True to disable mouse tracking. This is only applied at config time. (defaults to false)
This config option is defined by Resizable.

### draggable

`draggable : Boolean`
Convenience to initialize drag drop (defaults to false)
This config option is defined by Resizable.

### duration

`duration : Number`
Animation duration if animate = true (defaults to .35)
This config option is defined by Resizable.

### dynamic

`dynamic : Boolean`
True to resize the element while dragging instead of using a proxy (defaults to false)
This config option is defined by Resizable.

### easing

`easing : String`
Animation easing if animate = true (defaults to 'easingOutStrong')
This config option is defined by Resizable.

### enabled

`enabled : Boolean`
False to disable resizing (defaults to true)
This config option is defined by Resizable.

### handles

`handles : Boolean/String`
String consisting of the resize handles to display (defaults to false)
This config option is defined by Resizable.

### height

`height : Number`
The height of the element in pixels (defaults to null)
This config option is defined by Resizable.

### heightIncrement

`heightIncrement : Number`
The increment to snap the height resize in pixels (dynamic must be true, defaults to 0)
This config option is defined by Resizable.

### maxHeight

`maxHeight : Number`
The maximum height for the element (defaults to 10000)
This config option is defined by Resizable.

### maxWidth

`maxWidth : Number`
The maximum width for the element (defaults to 10000)
This config option is defined by Resizable.

### minHeight

`minHeight : Number`
The minimum height for the element (defaults to 5)
This config option is defined by Resizable.

### minWidth

`minWidth : Number`
The minimum width for the element (defaults to 5)
This config option is defined by Resizable.

### minX

`minX : Number`
The minimum allowed page X for the element (only used for west resizing, defaults to 0)
This config option is defined by Resizable.

### minY

`minY : Number`
The minimum allowed page Y for the element (only used for north resizing, defaults to 0)
This config option is defined by Resizable.

### multiDirectional

`multiDirectional : Boolean`
Deprecated. The old style of adding multi-direction resize handles, deprecated in favor of the handles config option (defaults to false)
This config option is defined by Resizable.

### pinned

`pinned : Boolean`
True to ensure that the resize handles are always visible, false to display them only when the user mouses over the resizable borders. This is only applied at config time. (defaults to false)
This config option is defined by Resizable.

### preserveRatio

`preserveRatio : Boolean`
True to preserve the original ratio between height and width during resize (defaults to false)
This config option is defined by Resizable.

### resizeChild

`resizeChild : Boolean/String/Element`
True to resize the first child, or id/element to resize (defaults to false)
This config option is defined by Resizable.

### transparent

`transparent : Boolean`
True for transparent handles. This is only applied at config time. (defaults to false)
This config option is defined by Resizable.

### width

`width : Number`
The width of the element in pixels (defaults to null)
This config option is defined by Resizable.

### widthIncrement

`widthIncrement : Number`
The increment to snap the width resize in pixels (dynamic must be true, defaults to 0)
This config option is defined by Resizable.

### wrap

`wrap : Boolean`
True to wrap an element with a div if needed (required for textareas and images, defaults to false)
This config option is defined by Resizable.

Ext - Copyright © 2006-2007 Ext JS, LLC
All rights reserved.