classdom::Elem

sys::Obj
  dom::Elem

@Js

Elem models a DOM element object.

See pod doc for details.

add

Source

@Operator
virtual This add(Elem child)

Add a new element as a child to this element. Return this.

addAll

Source

This addAll(Elem[] elems)

Add all elements to this element. Returns this.

animateStart

Source

Void animateStart(KeyFrames frames, [Str:Obj]? opts, Duration dur)

Start an animation on this element using the given key frames.

frames := KeyFrames([
  KeyFrame("0%",   ["transform": "scale(1)"]),
  KeyFrame("50%",  ["transform": "scale(1.1)"]),
  KeyFrame("100%", ["transform": "scale(1)"]),
])

animate(frames, null, 5sec)
animate(frames, ["animation-iteration-count":"infinite"], 1sec)
animateStop

Source

Void animateStop()

Stop the current animation on this element, or do nothing if no animation in progress.

attr

Source

Str? attr(Str name)

Get the given HTML attribute value for this element. Returns null if attribute not defined.

attrs

Source

Str:Str attrs()

Get name:value map of all attributes.

blur

Source

virtual Void blur()

Remove focus from this elem.

children

Source

Elem[] children()

Get the child nodes of this element.

clone

Source

Elem clone(Bool deep := true)

Return a duplicate of this node.

closest

Source

Elem? closest(Str selectors)

Traverses this element and its parents (heading toward the document root) until it finds a node that matches the specified CSS selector. Returns null if none found.

containsChild

Source

Bool containsChild(Elem elem)

Return true if given element is a descendant of this node, or false if not.

enabled

Source

virtual Bool? enabled

The enabled attribute for this element, or null if one not applicable. This is typically only valid for form elements.

firstChild

Source

Elem? firstChild()

Get the first child node of this element, or null if this element has no children.

focus

Source

virtual Void focus()

Request keyboard focus on this elem.

fromHtml

Source

static Elem fromHtml(Str html)

Create an Elem instance from a HTML string. This is equivlaent

elem := Elem { it.html=html }.firstChild
fromNative

Source

static Elem fromNative(Obj elem, Type type := dom::Elem#)

Create an Elem instance from a native JavaScript DOM object. The type may be specified to create a subclass instance of Elem. Note if the native instance has already been mapped to Fantom, the existing instance is returned and type will have no effect.

get

Source

@Operator
Obj? get(Str name)

Convenience for attr.

hasChildren

Source

Bool hasChildren()

Return true if children is non-zero, false otherwise.

hasFocus

Source

virtual Bool hasFocus()

Return true if this elem has focus.

html

Source

Str html

The HTML markup contained in this element.

id

Source

Str? id

The id for this element. Returns null if id is not defined.

insertBefore

Source

virtual This insertBefore(Elem child, Elem ref)

Insert a new element as a child to this element before the specified reference element. The reference element must be a child of this element. Returns this.

invoke

Source

Obj? invoke(Str name, Obj?[]? args := null)

Invoke the given native DOM function with optional arguments.

lastChild

Source

Elem? lastChild()

Get the last child node of this element, or null if this element has no children.

make

Source

new make(Str tagName := "div", Uri? ns := null)

Create a new Elem in the current Doc. Optionally a namespace can be specified with ns.

nextSibling

Source

Elem? nextSibling()

Get the next sibling to this element, or null if this is the last element under its parent.

ns

Source

Uri ns()

The namespace URI of this element.

onEvent

Source

Func onEvent(Str type, Bool useCapture, |Event handler)

Attach an event handler for the given event on this element. Returns callback function instance.

pagePos

Source

Point pagePos()

Position of element relative to the whole document.

parent

Source

Elem? parent()

Get the parent Elem of this element, or null if this element has no parent.

pos

Source

Point pos

Position of element relative to its parent in pixels.

prevSibling

Source

Elem? prevSibling()

Get the previous sibling to this element, or null if this is the first element under its parent.

prop

Source

Obj? prop(Str name)

Get the given DOM property value for this element. Returns null if property does not exist.

querySelector

Source

Elem? querySelector(Str selectors)

Returns the first element that is a descendant of this element on which it is invoked that matches the specified group of selectors.

querySelectorAll

Source

Elem[] querySelectorAll(Str selectors)

Returns a list of all elements descended from this element on which it is invoked that match the specified group of CSS selectors.

relPos

Source

Point relPos(Point p)

Given a page position, return p relative to this element.

remove

Source

virtual This remove(Elem child)

Remove a child element from this element. Return this.

removeAll

Source

This removeAll()

Remove all children from this element. Returns this.

removeAttr

Source

This removeAttr(Str name)

Remove the given HTML attribute from this element.

removeEvent

Source

Void removeEvent(Str type, Bool useCapture, Func handler)

Remove the given event handler from this element. If this handler was not registered, this method does nothing.

renderCanvas

Source

Void renderCanvas(|Graphics f)

Paint a <canvas> element. The given callback is invoked with a graphics context to perform the rendering operation.

replace

Source

virtual This replace(Elem oldChild, Elem newChild)

Replace existing child node with a new child. Returns this.

scrollIntoView

Source

This scrollIntoView(Bool alignToTop := true)

Scroll parent container so this Elem is visible to user. If alignToTop is true (the default value), the top of Elem is aligned to top of the visible area. If false, the bottom of Elem is aligned to bottom of the visible area.

scrollPos

Source

Point scrollPos

Top left scroll position of element.

scrollSize

Source

Size scrollSize()

Scrollable size of element.

set

Source

@Operator
Void set(Str name, Str? val)

Conveneince for setAttr.

setAttr

Source

This setAttr(Str name, Str? val, Uri? ns := null)

Set the given HTML attribute value for this element. If val is null the attribute is removed (see removeAttr). Optionally a namespace can be specified with ns.

setProp

Source

This setProp(Str name, Obj? val)

Set the given DOM properity value for this element.

size

Source

Size size

Size of element in pixels.

style

Source

Style style()

Get the Style instance for this element.

tagName

Source

Str tagName()

Get the tag name for this element.

text

Source

Str text

Text content contained in this element.

transition

Source

Void transition(Str:Obj props, [Str:Obj]? opts, Duration dur, |Elem? onComplete := null)

Transition a set of CSS properties.

transition(["opacity": "0.5"], null, 1sec) { echo("done!") }
transition(["opacity": "0.5"], ["transition-delay": 500ms], 1sec) { echo("done!") }
trap

Source

virtual override Obj? trap(Str name, Obj?[]? args := null)

The trap operator will behave slightly differently based on the namespace of the element.

For HTML elements, trap works as a convenience for prop and setProp:

div := Elem("div")
div->tabIndex = 0   // equivalent to div.setProp("tabIndex", 0)

For SVG elements (where ns is `http://www.w3.org/2000/svg`), trap routes to attr and setAttr:

svg := Svg.line(0, 0, 10, 10)
svg->x1 = 5      // equivalent to svg.setAttr("x1", "5")
svg->y1 = 5      // equivalent to svg.setAttr("y1", "5")
svg->x2 == "10"  // equivalent to svg.attr("x2")