Class CustomElementView Base class for custom HTML elements. In addition to other custom methods, it can implement created()
and ready()
methods that are executed during the element lifecycle.
Extends HTMLBaseView<CustomHTMLElement>
constructor (_el: CustomHTMLElement): CustomElementView Name Type Default Description _el
CustomHTMLElement
readonly Property ._data : Obj<any> Default value: ...
readonly Property ._el : CustomHTMLElement readonly Property ._events : Obj<Array<EventCallback>> Default value: ...
readonly Property .type : string Default value: 'default'
Accessor .bounds : DOMRect Accessor .boundsRect : Rectangle Accessor .boxCenter : Point Accessor .childNodes Returns an array of all child nodes, including text nodes.
Accessor .children Returns an array of all children of this element.
Accessor .data : DOMStringMap Accessor .height : number Returns this element’s height, including border and padding.
Accessor .innerHeight : number Returns this element’s height, excluding border and padding.
Accessor .innerWidth : number Returns this element’s width, excluding border and padding.
Accessor .isInViewport : boolean Checks if this element is currently visible in the viewport.
Accessor .next : ElementView Returns this element’s next sibling, or undefined.
Accessor .offsetLeft : number Accessor .offsetParent : ElementView Accessor .offsetTop : number Accessor .outerHeight : number Returns this element’s height, including margins.
Accessor .outerWidth : number Returns this element’s width, including margins.
Accessor .parent : HTMLView Returns this element’s parent, or undefined.
Accessor .positionLeft : number Accessor .positionTop : number Accessor .prev : ElementView Returns this element’s previous sibling, or undefined.
Accessor .scale Finds the x and y scale of this element.
Accessor .tagName : string Accessor .topLeftPosition : Point Shortcut for getting the CSS transform style of an element.
Accessor .width : number Returns this element’s width, including border and padding.
Method .$ (selector: T): QueryResult<T> The first child element matching a given selector.
Name Type Default Description selector
T
Method .$$ (selector: T): QueryResults<T> All child elements matching a given selector.
Name Type Default Description selector
T
Method .addClass (className: string): void Adds one or more space-separated classes to this element.
Name Type Default Description className
string
Method .animate (rules: AnimationProperties, duration: number, delay: number, easing: string): AnimationResponse Animates multiple CSS properties of this element, with a given duration, delay and ease function.
Name Type Default Description rules
AnimationProperties duration
number 400 delay
number 0 easing
string ‘ease-in-out’
Method .append (newChild: ElementView|Text): void Adds a new child element at the end of this one.
Name Type Default Description newChild
ElementView Text
Method .attr (attr: string): string Name Type Default Description attr
string
Method .bindModel (model: any, recursive: boolean): void Name Type Default Description model
any recursive
boolean true
Method .bindVariable (_model: any, _name: string): void Name Type Default Description _model
any _name
string
Method .blur (): void Blurs this DOM element.
Method .contains (point: Point): boolean Name Type Default Description point
Point
Method .copy (recursive: boolean): ElementView Creates a copy of this element, and optionally its children.
Name Type Default Description recursive
boolean true
Method .css (props: string|Obj<string|number>, value: string|number): undefined|string Retrieves or sets CSS properties on this element. Examples:
$el.css(‘color’); // returns ‘red’ $el.css(‘color’, ‘blue’); $el.css({color: ‘blue’}); Name Type Default Description props
string Obj<string number> value
string number
Method .detach (): void Detaches an element from the DOM.
Method .effect (className: string): void Triggers a CSS animation in an element by adding a class and removing it after the animationEnd
event.
Name Type Default Description className
string
Method .enter (effect: string, duration: number, delay: number): AnimationResponse Runs an enter animation on this element. Valid effect names are
‘fade’, ‘pop’ and ‘descend’ ‘draw’ and ‘draw-reverse’ ‘slide’ and ‘slide-down’ ‘reveal’, ‘reveal-left’ and ‘reveal-right’ Name Type Default Description effect
string ‘fade’ duration
number 500 delay
number 0
Method .equals (el: ElementView): boolean Name Type Default Description el
ElementView
Method .exit (effect: string, duration: number, delay: number, remove: boolean): AnimationResponse Runs an exit animation on this element. See .enter()
for options.
Name Type Default Description effect
string ‘fade’ duration
number 500 delay
number 0 remove
boolean false
Method .focus (): void Focuses this DOM element.
Method .getParentModel (): any Method .hasAttr (attr: string): boolean Name Type Default Description attr
string
Method .hasClass (className: string): boolean Name Type Default Description className
string
Method .hasParent ($p: Array<ElementView>): boolean Checks if this element has one of the given elements as parent.
Name Type Default Description $p
Array<ElementView>
Method .hide (): void Makes the element invisible, using CSS visibility (if data-display="visibility"
), or display: none
.
Method .index (): number Finds the index of an elements, in the list of its siblings.
Method .insertAfter (newChild: ElementView): void Adds a new element immediately after this one, as a sibling.
Name Type Default Description newChild
ElementView
Method .insertBefore (newChild: ElementView): void Adds a new element immediately before this one, as a sibling.
Name Type Default Description newChild
ElementView
Method .is (selector: string): boolean Checks if an element matches a given CSS selector.
Name Type Default Description selector
string
Method .off (events: string, callback: EventCallback): void Removes an event listener on this element. If callback is undefined, it removes all event listeners for this event.
Name Type Default Description events
string callback
EventCallback
Method .offset (parent: HTMLView): {bottom: number, left: number, right: number, top: number} Calculates the element offset relative to any other parent element.
Name Type Default Description parent
HTMLView
Method .on (events: string, callback: EventCallback, options: EventListenerOptions): void Binds one ore more space-separated event listeners on this element.
Name Type Default Description events
string callback
EventCallback options
EventListenerOptions
Method .onAttr (name: string, callback: (value: string, initial: boolean): void): void Name Type Default Description name
string callback
(value: string, initial: boolean): void
Binds an event listener for a specific key that is pressed while this element is in focus.
Name Type Default Description keys
string callback
(e: KeyboardEvent, key: string): void options
{meta?: undefined boolean, up?: undefined boolean}
Returns a promise that is resolved when an event is triggered.
Name Type Default Description event
string resolveImmediately
boolean false
Method .one (events: string, callback: EventCallback, options: EventListenerOptions): void Binds a one-time event listener on this element.
Name Type Default Description events
string callback
EventCallback options
EventListenerOptions
Method .parents (selector: string): Array<HTMLView> Finds all parent elements that match a specific selector.
Name Type Default Description selector
string
Method .prepend (newChild: ElementView): void Adds a new child element at the beginning of this one.
Name Type Default Description newChild
ElementView
Method .remove (): void Removes this element.
Method .removeAttr (attr: string): void Name Type Default Description attr
string
Method .removeChildren (): void Removes all children of this element.
Method .removeClass (className: string): void Name Type Default Description className
string
Method .restartAnimation (): void Detach and re-insert to restart CSS animations.
Scrolls the element by a given distance.
Name Type Default Description distance
number time
number 1000 easing
string ‘cubic’
Scrolls the element to a specific position.
Name Type Default Description pos
number time
number 1000 easing
string ‘cubic’
Method .setAttr (attr: string, value: any): void Name Type Default Description attr
string value
any
Method .setClass (className: string, condition: boolean): void Toggles multiple space-separated class names based on a condition.
Name Type Default Description className
string condition
boolean
Sets the CSS transform on this element.
Name Type Default Description posn
SimplePoint angle
number 0 scale
number 1
Method .show (): void Makes the element visible. Use the data-display
attribute to determine how this is done. Possible options are visibility
, to use CSS visibility, or CSS display values. The default is display: block
.
Method .toggle (show: boolean): void Hides or shows the element based on a boolean value.
Name Type Default Description show
boolean
Method .toggleClass (className: string): boolean Name Type Default Description className
string
Method .toggleDOM (show: boolean): void Conditionally hide this element from the DOM (using placeholder comments).
Name Type Default Description show
boolean true
Method .translate (x: number, y: number): void Sets the CSS transform of this element to an x/y translation.
Name Type Default Description x
number y
number
Method .trigger (events: string, args: any): void Triggers a specific event on this element.
Name Type Default Description events
string args
any …