Class: Object

fabric.Object

new Object()

Root object class from which all 2d shape classes inherit from
Source:
Tutorials:
See:
Fires:
  • event:added
  • event:removed
  • event:selected
  • event:deselected
  • event:modified
  • event:rotating
  • event:scaling
  • event:moving
  • event:skewing
  • event:mousedown
  • event:mouseup
  • event:mouseover
  • event:mouseout
  • event:mousewheel

Members

(static) __uid :Number

Unique id used internally when creating SVG elements
Type:
  • Number
Source:

(static, constant) NUM_FRACTION_DIGITS :Number

Defines the number of fraction digits to use when serializing object values. You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc.
Type:
  • Number
Source:

(static) rotate -> setAngle

Alias for fabric.Object.prototype.setAngle
Source:

aCoords

Describe object's corner position in canvas object absolute coordinates properties are tl,tr,bl,br and describe the four main corner. each property is an object with x, y, instance of Fabric.Point. The coordinates depends from this properties: width, height, scaleX, scaleY skewX, skewY, angle, strokeWidth, top, left. Those coordinates are usefull to understand where an object is. They get updated with oCoords but they do not need to be updated when zoom or panning change. The coordinates get updated with @method setCoords. You can calculate them without updating with @method calcCoords(true);
Source:

angle :Number

Angle of rotation of an object (in degrees)
Type:
  • Number
Source:

backgroundColor :String

Background color of an object.
Type:
  • String
Source:

borderColor :String

Color of controlling borders of an object (when it's active)
Type:
  • String
Default Value:
  • rgba(102,153,255,0.75)
Source:

borderDashArray :Array

Array specifying dash pattern of an object's borders (hasBorder must be true)
Type:
Since:
  • 1.6.2
Source:

borderOpacityWhenMoving :Number

Opacity of object's controlling borders when object is active and moving
Type:
  • Number
Default Value:
  • 0.4
Source:

borderScaleFactor :Number

Scale factor of object's controlling borders
Type:
  • Number
Default Value:
  • 1
Source:

cacheProperties :Array

List of properties to consider when checking if cache needs refresh
Type:
Source:

centeredRotation :Boolean

When true, this object will use center point as the origin of transformation when being rotated via the controls. Backwards incompatibility note: This property replaces "centerTransform" (Boolean).
Type:
  • Boolean
Since:
  • 1.3.4
Default Value:
  • true
Source:

centeredScaling :Boolean

When true, this object will use center point as the origin of transformation when being scaled via the controls. Backwards incompatibility note: This property replaces "centerTransform" (Boolean).
Type:
  • Boolean
Since:
  • 1.3.4
Source:

clipTo :function

Function that determines clipping of an object (context is passed as a first argument) Note that context origin is at the object's center point (not left/top corner)
Type:
  • function
Source:

cornerColor :String

Color of controlling corners of an object (when it's active)
Type:
  • String
Default Value:
  • rgba(102,153,255,0.5)
Source:

cornerDashArray :Array

Array specifying dash pattern of an object's control (hasBorder must be true)
Type:
Since:
  • 1.6.2
Source:

cornerSize :Number

Size of object's controlling corners (in pixels)
Type:
  • Number
Default Value:
  • 13
Source:

cornerStrokeColor :String

Color of controlling corners of an object (when it's active and transparentCorners false)
Type:
  • String
Since:
  • 1.6.2
Source:

cornerStyle :String

Specify style of control, 'rect' or 'circle'
Type:
  • String
Since:
  • 1.6.2
Source:

dirty :Boolean

When set to `true`, object's cache will be rerendered next render call. since 1.7.0
Type:
  • Boolean
Default Value:
  • true
Source:

evented :Boolean

When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4
Type:
  • Boolean
Default Value:
  • true
Source:

excludeFromExport :Boolean

When `true`, object is not exported in SVG or OBJECT/JSON since 1.6.3
Type:
  • Boolean
Source:

fill :String

Color of object's fill
Type:
  • String
Default Value:
  • rgb(0,0,0)
Source:

fillRule :String

Fill rule used to fill an object accepted values are nonzero, evenodd Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead)
Type:
  • String
Default Value:
  • nonzero
Source:

flipX :Boolean

When true, an object is rendered as flipped horizontally
Type:
  • Boolean
Source:

flipY :Boolean

When true, an object is rendered as flipped vertically
Type:
  • Boolean
Source:

globalCompositeOperation :String

Composite rule used for canvas globalCompositeOperation
Type:
  • String
Default Value:
  • source-over
Source:

hasBorders :Boolean

When set to `false`, object's controlling borders are not rendered
Type:
  • Boolean
Default Value:
  • true
Source:

hasControls :Boolean

When set to `false`, object's controls are not displayed and can not be used to manipulate object
Type:
  • Boolean
Default Value:
  • true
Source:

hasRotatingPoint :Boolean

When set to `false`, object's controlling rotating point will not be visible or selectable
Type:
  • Boolean
Default Value:
  • true
Source:

height :Number

Object height
Type:
  • Number
Source:

hoverCursor :String

Default cursor value used when hovering over this object on canvas
Type:
  • String
Source:

includeDefaultValues :Boolean

When `false`, default object's values are not included in its serialization
Type:
  • Boolean
Default Value:
  • true
Source:

left :Number

Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}
Type:
  • Number
Source:

lockMovementX :Boolean

When `true`, object horizontal movement is locked
Type:
  • Boolean
Source:

lockMovementY :Boolean

When `true`, object vertical movement is locked
Type:
  • Boolean
Source:

lockRotation :Boolean

When `true`, object rotation is locked
Type:
  • Boolean
Source:

lockScalingFlip :Boolean

When `true`, object cannot be flipped by scaling into negative values
Type:
  • Boolean
Source:

lockScalingX :Boolean

When `true`, object horizontal scaling is locked
Type:
  • Boolean
Source:

lockScalingY :Boolean

When `true`, object vertical scaling is locked
Type:
  • Boolean
Source:

lockSkewingX :Boolean

When `true`, object horizontal skewing is locked
Type:
  • Boolean
Source:

lockSkewingY :Boolean

When `true`, object vertical skewing is locked
Type:
  • Boolean
Source:

lockUniScaling :Boolean

When `true`, object non-uniform scaling is locked
Type:
  • Boolean
Source:

minScaleLimit :Number

Minimum allowed scale value of an object
Type:
  • Number
Default Value:
  • 0.01
Source:

moveCursor :String

Default cursor value used when moving this object on canvas
Type:
  • String
Source:

needsItsOwnCache :Boolean

When set to `true`, force the object to have its own cache, even if it is inside a group it may be needed when your object behave in a particular way on the cache and always needs its own isolated canvas to render correctly. since 1.7.5
Type:
  • Boolean
Default Value:
  • false
Source:

noScaleCache :Boolean

When `true`, cache does not get updated during scaling. The picture will get blocky if scaled too much and will be redrawn with correct details at the end of scaling. this setting is performance and application dependant. default to true since 1.7.0
Type:
  • Boolean
Default Value:
  • true
Source:

objectCaching :Boolean

When `true`, object is cached on an additional canvas. default to true since 1.7.0
Type:
  • Boolean
Default Value:
  • true
Source:

oCoords

Describe object's corner position in canvas element coordinates. properties are tl,mt,tr,ml,mr,bl,mb,br,mtr for the main controls. each property is an object with x, y and corner. The `corner` property contains in a similar manner the 4 points of the interactive area of the corner. The coordinates depends from this properties: width, height, scaleX, scaleY skewX, skewY, angle, strokeWidth, viewportTransform, top, left, padding. The coordinates get updated with @method setCoords. You can calculate them without updating with @method calcCoords;
Source:

opacity :Number

Opacity of an object
Type:
  • Number
Default Value:
  • 1
Source:

originX :String

Horizontal origin of transformation of an object (one of "left", "right", "center") See http://jsfiddle.net/1ow02gea/40/ on how originX/originY affect objects in groups
Type:
  • String
Default Value:
  • left
Source:

originY :String

Vertical origin of transformation of an object (one of "top", "bottom", "center") See http://jsfiddle.net/1ow02gea/40/ on how originX/originY affect objects in groups
Type:
  • String
Default Value:
  • top
Source:

padding :Number

Padding between object and its controlling borders (in pixels)
Type:
  • Number
Source:

perPixelTargetFind :Boolean

When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box
Type:
  • Boolean
Source:

rotatingPointOffset :Number

Offset for object's controlling rotating point (when enabled via `hasRotatingPoint`)
Type:
  • Number
Default Value:
  • 40
Source:

scaleX :Number

Object scale factor (horizontal)
Type:
  • Number
Default Value:
  • 1
Source:

scaleY :Number

Object scale factor (vertical)
Type:
  • Number
Default Value:
  • 1
Source:

selectable :Boolean

When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection). But events still fire on it.
Type:
  • Boolean
Default Value:
  • true
Source:

selectionBackgroundColor :String

Selection Background color of an object. colored layer behind the object when it is active. does not mix good with globalCompositeOperation methods.
Type:
  • String
Source:

shadow :fabric.Shadow

Shadow object representing shadow of this shape
Type:
Source:

skewX :Number

Angle of skew on x axes of an object (in degrees)
Type:
  • Number
Source:

skewY :Number

Angle of skew on y axes of an object (in degrees)
Type:
  • Number
Source:

statefullCache :Boolean

When `true`, object properties are checked for cache invalidation. In some particular situation you may want this to be disabled ( spray brush, very big pathgroups, groups) or if your application does not allow you to modify properties for groups child you want to disable it for groups. default to false since 1.7.0
Type:
  • Boolean
Default Value:
  • false
Source:

stateProperties :Array

List of properties to consider when checking if state of an object is changed (fabric.Object#hasStateChanged) as well as for history (undo/redo) purposes
Type:
Source:

stroke :String

When defined, an object is rendered via stroke and this property specifies its color
Type:
  • String
Source:

strokeDashArray :Array

Array specifying dash pattern of an object's stroke (stroke must be defined)
Type:
Source:

strokeLineCap :String

Line endings style of an object's stroke (one of "butt", "round", "square")
Type:
  • String
Default Value:
  • butt
Source:

strokeLineJoin :String

Corner style of an object's stroke (one of "bevil", "round", "miter")
Type:
  • String
Default Value:
  • miter
Source:

strokeMiterLimit :Number

Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke
Type:
  • Number
Default Value:
  • 10
Source:

strokeWidth :Number

Width of a stroke used to render this object
Type:
  • Number
Default Value:
  • 1
Source:

top :Number

Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}
Type:
  • Number
Source:

transformMatrix :Array

Transform matrix (similar to SVG's transform matrix)
Type:
Source:

transparentCorners :Boolean

When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)
Type:
  • Boolean
Default Value:
  • true
Source:

type :String

Type of an object (rect, circle, path, etc.). Note that this property is meant to be read-only and not meant to be modified. If you modify, certain parts of Fabric (such as JSON loading) won't work correctly.
Type:
  • String
Default Value:
  • object
Source:

visible :Boolean

When set to `false`, an object is not rendered on canvas
Type:
  • Boolean
Default Value:
  • true
Source:

width :Number

Object width
Type:
  • Number
Source:

Methods

_calcRotateMatrix() → {Array}

calculate rotation matrix of an object
Source:
Returns:
rotation matrix for the object
Type
Array

_renderControls(ctx)

Renders controls and borders for the object
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to render on
Source:

_setupCompositeOperation(ctx)

Sets canvas globalCompositeOperation for specific object custom composition operation for the particular object can be specifed using globalCompositeOperation property
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Rendering canvas context
Source:

adjustPosition(to)

Parameters:
Name Type Description
to String One of 'left', 'center', 'right'
Source:

animate(property, value) → {fabric.Object}

Animates object's properties
Parameters:
Name Type Description
property String | Object Property to animate (if string) or properties to animate (if object)
value Number | Object Value to animate property to (if string was given first) or options object
Source:
Tutorials:
Returns:
thisArg
Type
fabric.Object

bringForward(intersectingopt) → {fabric.Object}

Moves an object up in stack of drawn objects
Parameters:
Name Type Attributes Description
intersecting Boolean <optional>
If `true`, send object in front of next upper intersecting object
Source:
Returns:
thisArg
Type
fabric.Object

bringToFront() → {fabric.Object}

Moves an object to the top of the stack of drawn objects
Source:
Returns:
thisArg
Type
fabric.Object

calcCoords() → {Object}

Calculate and returns the .coords of an object.
Source:
Returns:
Object with tl, tr, br, bl ....
Type
Object

calcTransformMatrix(skipGroupopt) → {Array}

calculate trasform Matrix that represent current transformation from object properties.
Parameters:
Name Type Attributes Description
skipGroup Boolean <optional>
return transformMatrix for object and not go upward with parents
Source:
Returns:
matrix Transform Matrix for the object
Type
Array

center() → {fabric.Object}

Centers object vertically and horizontally on canvas to which is was added last You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

centerH() → {fabric.Object}

Centers object horizontally on canvas to which it was added last. You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

centerV() → {fabric.Object}

Centers object vertically on canvas to which it was added last. You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

clone(callback, propertiesToIncludeopt) → {fabric.Object}

Clones an instance, some objects are async, so using callback method will work for every object. Using the direct return does not work for images and groups.
Parameters:
Name Type Attributes Description
callback function Callback is invoked with a clone as a first argument
propertiesToInclude Array <optional>
Any properties that you might want to additionally include in the output
Source:
Returns:
clone of an instance
Type
fabric.Object

cloneAsImage(callback, optionsopt) → {fabric.Object}

Creates an instance of fabric.Image out of an object
Parameters:
Name Type Attributes Description
callback function callback, invoked with an instance as a first argument
options Object <optional>
for clone as image, passed to toDataURL
Properties
Name Type Attributes Description
enableRetinaScaling Boolean <optional>
enable retina scaling for the cloned image
Source:
Returns:
thisArg
Type
fabric.Object

complexity() → {Number}

Returns complexity of an instance
Source:
Returns:
complexity of this instance (is 1 unless subclassed)
Type
Number

containsPoint(point, linesopt, absoluteopt, calculateopt) → {Boolean}

Checks if point is inside the object
Parameters:
Name Type Attributes Description
point fabric.Point Point to check against
lines Object <optional>
object returned from @method _getImageLines
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if point is inside the object
Type
Boolean

drawBorders(ctx) → {fabric.Object}

Draws borders of an object's bounding box. Requires public properties: width, height Requires public options: padding, borderColor
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to draw on
Source:
Returns:
thisArg
Type
fabric.Object

drawBordersInGroup(ctx, options) → {fabric.Object}

Draws borders of an object's bounding box when it is inside a group. Requires public properties: width, height Requires public options: padding, borderColor
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to draw on
options object object representing current object parameters
Source:
Returns:
thisArg
Type
fabric.Object

drawCacheOnCanvas(ctx)

Paint the cached copy of the object on the target context.
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to render on
Source:

drawControls(ctx) → {fabric.Object}

Draws corners of an object's bounding box. Requires public properties: width, height Requires public options: cornerSize, padding
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to draw on
Source:
Returns:
thisArg
Type
fabric.Object

drawObject(ctx, noTransformopt)

Execute the drawing operation for an object on a specified context
Parameters:
Name Type Attributes Description
ctx CanvasRenderingContext2D Context to render on
noTransform Boolean <optional>
When true, context is not transformed
Source:

drawSelectionBackground(ctx) → {fabric.Object}

Draws a colored layer behind the object, inside its selection borders. Requires public options: padding, selectionBackgroundColor this function is called when the context is transformed has checks to be skipped when the object is on a staticCanvas
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context to draw on
Source:
Returns:
thisArg
Type
fabric.Object

fxStraighten(callbacks) → {fabric.Object}

Same as fabric.Object.prototype.straighten but with animation
Parameters:
Name Type Description
callbacks Object Object with callback functions
Properties
Name Type Attributes Description
onComplete function <optional>
Invoked on completion
onChange function <optional>
Invoked on every step of animation
Source:
Returns:
thisArg
Type
fabric.Object

getAngle() → {Number}

Retrieves object's angle (in degrees)
Source:
Returns:
Type
Number

getBoundingRect(absoluteopt, calculateopt) → {Object}

Returns coordinates of object's bounding rectangle (left, top, width, height) the box is intented as aligned to axis of canvas.
Parameters:
Name Type Attributes Description
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
Object with left, top, width, height properties
Type
Object

getBoundingRectHeight() → {Number}

Returns height of an object's bounding rectangle
Deprecated:
  • since 1.0.4
Source:
Returns:
height value
Type
Number

getBoundingRectWidth() → {Number}

Returns width of an object's bounding rectangle
Deprecated:
  • since 1.0.4
Source:
Returns:
width value
Type
Number

getCenterPoint() → {fabric.Point}

Returns the real center coordinates of the object
Source:
Returns:
Type
fabric.Point

getClipTo() → {function}

Retrieves object's clipping function
Source:
Returns:
Type
function

getCoords()

return correct set of coordinates for intersection
Source:

getFill() → {String}

Retrieves object's fill
Source:
Returns:
Fill value
Type
String

getFlipX() → {Boolean}

Retrieves object's flipX value
Source:
Returns:
flipX value
Type
Boolean

getFlipY() → {Boolean}

Retrieves object's flipY value
Source:
Returns:
flipY value
Type
Boolean

getHeight() → {Number}

Returns height of an object bounding box counting transformations to be renamed in 2.0
Source:
Returns:
height value
Type
Number

getLeft() → {Number}

Retrieves object's left position
Source:
Returns:
Left value (in pixels)
Type
Number

getLocalPointer(e, pointeropt) → {Object}

Returns coordinates of a pointer relative to an object
Parameters:
Name Type Attributes Description
e Event Event to operate upon
pointer Object <optional>
Pointer to operate upon (instead of event)
Source:
Returns:
Coordinates of a pointer (x, y)
Type
Object

getObjectScaling() → {Object}

Return the object scale factor counting also the group scaling
Source:
Returns:
object with scaleX and scaleY properties
Type
Object

getOpacity() → {Number}

Retrieves object's opacity
Source:
Returns:
Opacity value (0-1)
Type
Number

getOriginX() → {String}

Retrieves object's originX
Source:
Returns:
originX value
Type
String

getOriginY() → {String}

Retrieves object's originY
Source:
Returns:
originY value
Type
String

getPointByOrigin(originX, originY) → {fabric.Point}

Returns the coordinates of the object as if it has a different origin
Parameters:
Name Type Description
originX String Horizontal origin: 'left', 'center' or 'right'
originY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
fabric.Point

getScaleX() → {Number}

Retrieves object's scaleX value
Source:
Returns:
scaleX value
Type
Number

getScaleY() → {Number}

Retrieves object's scaleY value
Source:
Returns:
scaleY value
Type
Number

getShadow() → {Object}

Retrieves object's shadow
Source:
Returns:
Shadow instance
Type
Object

getStroke() → {String}

Retrieves object's stroke
Source:
Returns:
stroke value
Type
String

getStrokeWidth() → {Number}

Retrieves object's strokeWidth
Source:
Returns:
strokeWidth value
Type
Number

getSvgFilter() → {String}

Returns filter for svg shadow
Source:
Returns:
Type
String

getSvgId() → {String}

Returns id attribute for svg output
Source:
Returns:
Type
String

getSvgStyles(skipShadow) → {String}

Returns styles-string for svg-export
Parameters:
Name Type Description
skipShadow Boolean a boolean to skip shadow filter output
Source:
Returns:
Type
String

getSvgTransform() → {String}

Returns transform-string for svg-export
Source:
Returns:
Type
String

getSvgTransformMatrix() → {String}

Returns transform-string for svg-export from the transform matrix of single elements
Source:
Returns:
Type
String

getTop() → {Number}

Retrieves object's top position
Source:
Returns:
Top value (in pixels)
Type
Number

getTransformMatrix() → {Array}

Retrieves object's transformMatrix
Source:
Returns:
transformMatrix
Type
Array

getViewportTransform() → {Boolean}

Retrieves viewportTransform from Object's canvas if possible
Source:
Returns:
flipY value // TODO
Type
Boolean

getVisible() → {Boolean}

Retrieves object's visible state
Source:
Returns:
True if visible
Type
Boolean

getWidth() → {Number}

Returns width of an object bounding box counting transformations
Source:
Returns:
width value
Type
Number

hasStateChanged(propertySetopt) → {Boolean}

Returns true if object state (one of its state properties) was changed
Parameters:
Name Type Attributes Description
propertySet String <optional>
optional name for the set of property we want to save
Source:
Returns:
true if instance' state has changed since `fabric.Object#saveState` was called
Type
Boolean

initialize(optionsopt)

Constructor
Parameters:
Name Type Attributes Description
options Object <optional>
Options object
Source:

intersectsWithObject(other, absoluteopt, calculateopt) → {Boolean}

Checks if object intersects with another object
Parameters:
Name Type Attributes Description
other Object Object to test
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if object intersects with another object
Type
Boolean

intersectsWithRect(pointTL, pointBR, absoluteopt, calculateopt) → {Boolean}

Checks if object intersects with an area formed by 2 points
Parameters:
Name Type Attributes Description
pointTL Object top-left point of area
pointBR Object bottom-right point of area
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if object intersects with an area formed by 2 points
Type
Boolean

isCacheDirty(skipCanvas)

Check if cache is dirty
Parameters:
Name Type Description
skipCanvas Boolean skip canvas checks because this object is painted on parent canvas.
Source:

isContainedWithinObject(other, absoluteopt, calculateopt) → {Boolean}

Checks if object is fully contained within area of another object
Parameters:
Name Type Attributes Description
other Object Object to test
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if object is fully contained within area of another object
Type
Boolean

isContainedWithinRect(pointTL, pointBR, absoluteopt, calculateopt) → {Boolean}

Checks if object is fully contained within area formed by 2 points
Parameters:
Name Type Attributes Description
pointTL Object top-left point of area
pointBR Object bottom-right point of area
absolute Boolean <optional>
use coordinates without viewportTransform
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if object is fully contained within area formed by 2 points
Type
Boolean

isControlVisible(controlName) → {Boolean}

Returns true if the specified control is visible, false otherwise.
Parameters:
Name Type Description
controlName String The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.
Source:
Returns:
true if the specified control is visible, false otherwise
Type
Boolean

isOnScreen(calculateopt) → {Boolean}

Checks if object is contained within the canvas with current viewportTransform the check is done stopping at first point that appear on screen
Parameters:
Name Type Attributes Description
calculate Boolean <optional>
use coordinates of current position instead of .oCoords
Source:
Returns:
true if object is fully contained within canvas
Type
Boolean

isType(type) → {Boolean}

Returns true if specified type is identical to the type of an instance
Parameters:
Name Type Description
type String Type to check against
Source:
Returns:
Type
Boolean

moveTo(index) → {fabric.Object}

Moves an object to specified level in stack of drawn objects
Parameters:
Name Type Description
index Number New position of object
Source:
Returns:
thisArg
Type
fabric.Object

onDeselect()

Callback; invoked right before object is about to go from active to inactive
Source:

remove() → {fabric.Object}

Removes object from canvas to which it was added last
Source:
Returns:
thisArg
Type
fabric.Object

render(ctx, noTransformopt)

Renders an object on a specified context
Parameters:
Name Type Attributes Description
ctx CanvasRenderingContext2D Context to render on
noTransform Boolean <optional>
When true, context is not transformed
Source:

saveState(optionsopt) → {fabric.Object}

Saves state of an object
Parameters:
Name Type Attributes Description
options Object <optional>
Object with additional `stateProperties` array to include when saving state
Source:
Returns:
thisArg
Type
fabric.Object

scale(value) → {fabric.Object}

Scales an object (equally by x and y)
Parameters:
Name Type Description
value Number Scale factor
Source:
Returns:
thisArg
Type
fabric.Object

scaleToHeight(value) → {fabric.Object}

Scales an object to a given height, with respect to bounding box (scaling by x/y equally)
Parameters:
Name Type Description
value Number New height value
Source:
Returns:
thisArg
Type
fabric.Object

scaleToWidth(value) → {fabric.Object}

Scales an object to a given width, with respect to bounding box (scaling by x/y equally)
Parameters:
Name Type Description
value Number New width value
Source:
Returns:
thisArg
Type
fabric.Object

sendBackwards(intersectingopt) → {fabric.Object}

Moves an object down in stack of drawn objects
Parameters:
Name Type Attributes Description
intersecting Boolean <optional>
If `true`, send object behind next lower intersecting object
Source:
Returns:
thisArg
Type
fabric.Object

sendToBack() → {fabric.Object}

Moves an object to the bottom of the stack of drawn objects
Source:
Returns:
thisArg
Type
fabric.Object

setAngle(angle) → {fabric.Object}

Sets "angle" of an instance
Parameters:
Name Type Description
angle Number Angle value (in degrees)
Source:
Returns:
thisArg
Type
fabric.Object

setClipTo(clipTo) → {fabric.Object}

Sets object's clipping function
Parameters:
Name Type Description
clipTo function Clipping function
Source:
Returns:
thisArg
Type
fabric.Object

setColor(color) → {fabric.Object}

Sets "color" of an instance (alias of `set('fill', …)`)
Parameters:
Name Type Description
color String Color value
Source:
Returns:
thisArg
Type
fabric.Object

setControlsVisibility(optionsopt) → {fabric.Object}

Sets the visibility state of object controls.
Parameters:
Name Type Attributes Description
options Object <optional>
Options object
Properties
Name Type Attributes Description
bl Boolean <optional>
true to enable the bottom-left control, false to disable it
br Boolean <optional>
true to enable the bottom-right control, false to disable it
mb Boolean <optional>
true to enable the middle-bottom control, false to disable it
ml Boolean <optional>
true to enable the middle-left control, false to disable it
mr Boolean <optional>
true to enable the middle-right control, false to disable it
mt Boolean <optional>
true to enable the middle-top control, false to disable it
tl Boolean <optional>
true to enable the top-left control, false to disable it
tr Boolean <optional>
true to enable the top-right control, false to disable it
mtr Boolean <optional>
true to enable the middle-top-rotate control, false to disable it
Source:
Returns:
thisArg
Type
fabric.Object

setControlVisible(controlName, visible) → {fabric.Object}

Sets the visibility of the specified control.
Parameters:
Name Type Description
controlName String The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.
visible Boolean true to set the specified control visible, false otherwise
Source:
Returns:
thisArg
Type
fabric.Object

setCoords(ignoreZoomopt, skipAbsoluteopt) → {fabric.Object}

Sets corner position coordinates based on current angle, width and height See https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords
Parameters:
Name Type Attributes Description
ignoreZoom Boolean <optional>
set oCoords with or without the viewport transform.
skipAbsolute Boolean <optional>
skip calculation of aCoords, usefull in setViewportTransform
Source:
Returns:
thisArg
Type
fabric.Object

setFill(value) → {fabric.Object}

Sets object's fill
Parameters:
Name Type Description
value String Fill value
Source:
Returns:
thisArg
Type
fabric.Object

setFlipX(value) → {fabric.Object}

Sets object's flipX value
Parameters:
Name Type Description
value Boolean flipX value
Source:
Returns:
thisArg
Type
fabric.Object

setFlipY(value) → {fabric.Object}

Sets object's flipY value
Parameters:
Name Type Description
value Boolean flipY value
Source:
Returns:
thisArg
Type
fabric.Object

setGradient(property, optionsopt) → {fabric.Object}

Sets gradient (fill or stroke) of an object Backwards incompatibility note: This method was named "setGradientFill" until v1.1.0
Parameters:
Name Type Attributes Description
property String Property name 'stroke' or 'fill'
options Object <optional>
Options object
Properties
Name Type Attributes Default Description
type String <optional>
Type of gradient 'radial' or 'linear'
x1 Number <optional>
0 x-coordinate of start point
y1 Number <optional>
0 y-coordinate of start point
x2 Number <optional>
0 x-coordinate of end point
y2 Number <optional>
0 y-coordinate of end point
r1 Number <optional>
0 Radius of start point (only for radial gradients)
r2 Number <optional>
0 Radius of end point (only for radial gradients)
colorStops Object <optional>
Color stops object eg. {0: 'ff0000', 1: '000000'}
gradientTransform Object <optional>
transforMatrix for gradient
Source:
See:
Returns:
thisArg
Type
fabric.Object
Examples

Set linear gradient

object.setGradient('fill', {
  type: 'linear',
  x1: -object.width / 2,
  y1: 0,
  x2: object.width / 2,
  y2: 0,
  colorStops: {
    0: 'red',
    0.5: '#005555',
    1: 'rgba(0,0,255,0.5)'
  }
});
canvas.renderAll();

Set radial gradient

object.setGradient('fill', {
  type: 'radial',
  x1: 0,
  y1: 0,
  x2: 0,
  y2: 0,
  r1: object.width / 2,
  r2: 10,
  colorStops: {
    0: 'red',
    0.5: '#005555',
    1: 'rgba(0,0,255,0.5)'
  }
});
canvas.renderAll();

setLeft(value) → {fabric.Object}

Sets object's left position
Parameters:
Name Type Description
value Number Left value (in pixels)
Source:
Returns:
thisArg
Type
fabric.Object

setOnGroup()

This callback function is called by the parent group of an object every time a non-delegated property changes on the group. It is passed the key and value as parameters. Not adding in this function's signature to avoid Travis build error about unused variables.
Source:

setOpacity(value) → {fabric.Object}

Sets object's opacity
Parameters:
Name Type Description
value Number Opacity value (0-1)
Source:
Returns:
thisArg
Type
fabric.Object

setOptions(optionsopt)

Sets object's properties from options
Parameters:
Name Type Attributes Description
options Object <optional>
Options object
Source:

setOriginX(value) → {fabric.Object}

Sets object's originX
Parameters:
Name Type Description
value String originX value
Source:
Returns:
thisArg
Type
fabric.Object

setOriginY(value) → {fabric.Object}

Sets object's originY
Parameters:
Name Type Description
value String originY value
Source:
Returns:
thisArg
Type
fabric.Object

setPatternFill(options) → {fabric.Object}

Sets pattern fill of an object
Parameters:
Name Type Description
options Object Options object
Properties
Name Type Attributes Default Description
source String | HTMLImageElement Pattern source
repeat String <optional>
repeat Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat)
offsetX Number <optional>
0 Pattern horizontal offset from object's left/top corner
offsetY Number <optional>
0 Pattern vertical offset from object's left/top corner
Source:
See:
Returns:
thisArg
Type
fabric.Object
Example

Set pattern

fabric.util.loadImage('http://fabricjs.com/assets/escheresque_ste.png', function(img) {
  object.setPatternFill({
    source: img,
    repeat: 'repeat'
  });
  canvas.renderAll();
});

setPositionByOrigin(pos, originX, originY) → {void}

Sets the position of the object taking into consideration the object's origin
Parameters:
Name Type Description
pos fabric.Point The new position of the object
originX String Horizontal origin: 'left', 'center' or 'right'
originY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
void

setScaleX(value) → {fabric.Object}

Sets object's scaleX value
Parameters:
Name Type Description
value Number scaleX value
Source:
Returns:
thisArg
Type
fabric.Object

setScaleY(value) → {fabric.Object}

Sets object's scaleY value
Parameters:
Name Type Description
value Number scaleY value
Source:
Returns:
thisArg
Type
fabric.Object

setShadow(optionsopt) → {fabric.Object}

Sets shadow of an object
Parameters:
Name Type Attributes Description
options Object | String <optional>
Options object or string (e.g. "2px 2px 10px rgba(0,0,0,0.2)")
Properties
Name Type Attributes Default Description
color String <optional>
rgb(0,0,0) Shadow color
blur Number <optional>
0 Shadow blur
offsetX Number <optional>
0 Shadow horizontal offset
offsetY Number <optional>
0 Shadow vertical offset
Source:
See:
Returns:
thisArg
Type
fabric.Object
Examples

Set shadow with string notation

object.setShadow('2px 2px 10px rgba(0,0,0,0.2)');
canvas.renderAll();

Set shadow with object notation

object.setShadow({
  color: 'red',
  blur: 10,
  offsetX: 20,
  offsetY: 20
});
canvas.renderAll();

setSourcePath(value) → {fabric.Object}

Sets sourcePath of an object
Parameters:
Name Type Description
value String Value to set sourcePath to
Source:
Returns:
thisArg
Type
fabric.Object

setStroke(value) → {fabric.Object}

Sets object's stroke
Parameters:
Name Type Description
value String stroke value
Source:
Returns:
thisArg
Type
fabric.Object

setStrokeWidth(value) → {fabric.Object}

Sets object's strokeWidth
Parameters:
Name Type Description
value Number strokeWidth value
Source:
Returns:
thisArg
Type
fabric.Object

setTop(value) → {fabric.Object}

Sets object's top position
Parameters:
Name Type Description
value Number Top value (in pixels)
Source:
Returns:
thisArg
Type
fabric.Object

setTransformMatrix(transformMatrix) → {fabric.Object}

Sets object's transformMatrix
Parameters:
Name Type Description
transformMatrix Array
Source:
Returns:
thisArg
Type
fabric.Object

setupState(optionsopt) → {fabric.Object}

Setups state of an object
Parameters:
Name Type Attributes Description
options Object <optional>
Object with additional `stateProperties` array to include when saving state
Source:
Returns:
thisArg
Type
fabric.Object

setVisible(value) → {fabric.Object}

Sets object's visible state
Parameters:
Name Type Description
value Boolean visible value
Source:
Returns:
thisArg
Type
fabric.Object

shouldCache() → {Boolean}

Decide if the object should cache or not. objectCaching is a global flag, wins over everything needsItsOwnCache should be used when the object drawing method requires a cache step. None of the fabric classes requires it. Generally you do not cache objects in groups because the group outside is cached.
Source:
Returns:
Type
Boolean

straighten() → {fabric.Object}

Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer)
Source:
Returns:
thisArg
Type
fabric.Object

toDatalessObject(propertiesToIncludeopt) → {Object}

Returns (dataless) object representation of an instance
Parameters:
Name Type Attributes Description
propertiesToInclude Array <optional>
Any properties that you might want to additionally include in the output
Source:
Returns:
Object representation of an instance
Type
Object

toDataURL(options) → {String}

Converts an object into a data-url-like string
Parameters:
Name Type Description
options Object Options object
Properties
Name Type Attributes Default Description
format String <optional>
png The format of the output image. Either "jpeg" or "png"
quality Number <optional>
1 Quality level (0..1). Only used for jpeg.
multiplier Number <optional>
1 Multiplier to scale by
left Number <optional>
Cropping left offset. Introduced in v1.2.14
top Number <optional>
Cropping top offset. Introduced in v1.2.14
width Number <optional>
Cropping width. Introduced in v1.2.14
height Number <optional>
Cropping height. Introduced in v1.2.14
enableRetina Boolean <optional>
Enable retina scaling for clone image. Introduce in 1.6.4
Source:
Returns:
Returns a data: URL containing a representation of the object in the format specified by options.format
Type
String

toJSON(propertiesToIncludeopt) → {Object}

Returns a JSON representation of an instance
Parameters:
Name Type Attributes Description
propertiesToInclude Array <optional>
Any properties that you might want to additionally include in the output
Source:
Returns:
JSON
Type
Object

toLocalPoint(point, originX, originY) → {fabric.Point}

Returns the point in local coordinates
Parameters:
Name Type Description
point fabric.Point The point relative to the global coordinate system
originX String Horizontal origin: 'left', 'center' or 'right'
originY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
fabric.Point

toObject(propertiesToIncludeopt) → {Object}

Returns an object representation of an instance
Parameters:
Name Type Attributes Description
propertiesToInclude Array <optional>
Any properties that you might want to additionally include in the output
Source:
Returns:
Object representation of an instance
Type
Object

toString() → {String}

Returns a string representation of an instance
Source:
Returns:
Type
String

transform(ctx, fromLeft)

Transforms context when rendering an object
Parameters:
Name Type Description
ctx CanvasRenderingContext2D Context
fromLeft Boolean When true, context is transformed to object's top/left corner. This is used when rendering text on Node
Source:

translateToCenterPoint(point, originX, originY) → {fabric.Point}

Translates the coordinates from origin to center coordinates (based on the object's dimensions)
Parameters:
Name Type Description
point fabric.Point The point which corresponds to the originX and originY params
originX String Horizontal origin: 'left', 'center' or 'right'
originY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
fabric.Point

translateToGivenOrigin(point, fromOriginX, fromOriginY, toOriginX, toOriginY) → {fabric.Point}

Translates the coordinates from origin to center coordinates (based on the object's dimensions)
Parameters:
Name Type Description
point fabric.Point The point which corresponds to the originX and originY params
fromOriginX String Horizontal origin: 'left', 'center' or 'right'
fromOriginY String Vertical origin: 'top', 'center' or 'bottom'
toOriginX String Horizontal origin: 'left', 'center' or 'right'
toOriginY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
fabric.Point

translateToOriginPoint(center, originX, originY) → {fabric.Point}

Translates the coordinates from center to origin coordinates (based on the object's dimensions)
Parameters:
Name Type Description
center fabric.Point The point which corresponds to center of the object
originX String Horizontal origin: 'left', 'center' or 'right'
originY String Vertical origin: 'top', 'center' or 'bottom'
Source:
Returns:
Type
fabric.Point

viewportCenter() → {fabric.Object}

Centers object on current viewport of canvas to which it was added last. You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

viewportCenterH() → {fabric.Object}

Centers object horizontally on current viewport of canvas to which it was added last. You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

viewportCenterV() → {fabric.Object}

Centers object vertically on current viewport of canvas to which it was added last. You might need to call `setCoords` on an object after centering, to update controls area.
Source:
Returns:
thisArg
Type
fabric.Object

willDrawShadow() → {Boolean}

Check if this object or a child object will cast a shadow used by Group.shouldCache to know if child has a shadow recursively
Source:
Returns:
Type
Boolean