class dom::Elem
sys::Obj dom::Elem
@Js
Elem models a DOM element object.
See pod doc for details.
- add
-
@Operator
virtual This add(Elem child)Add a new element as a child to this element. Return this.
- addAll
-
Add all elements to this element. Returns this.
- animateStart
-
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
-
Void animateStop()
Stop the current animation on this element, or do nothing if no animation in progress.
- attr
-
Get the given HTML attribute value for this element. Returns
null
if attribute not defined. - attrs
-
Get
name:value
map of all attributes. - blur
-
virtual Void blur()
Remove focus from this elem.
- children
-
Elem[] children()
Get the child nodes of this element.
- clone
-
Return a duplicate of this node.
- closest
-
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
-
Return
true
if given element is a descendant of this node, orfalse
if not. - enabled
-
virtual Bool? enabled
The enabled attribute for this element, or null if one not applicable. This is typically only valid for form elements.
- firstChild
-
Elem? firstChild()
Get the first child node of this element, or null if this element has no children.
- focus
-
virtual Void focus()
Request keyboard focus on this elem.
- fromHtml
-
static Elem fromHtml(Str html)
Create an
Elem
instance from a HTML string. This is equivlaentelem := Elem { it.html=html }.firstChild
- fromNative
-
static Elem fromNative(Obj elem, Type type := dom::Elem#)
Create an
Elem
instance from a native JavaScript DOM object. Thetype
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 andtype
will have no effect. - get
-
Convenience for
attr
. - hasChildren
-
Bool hasChildren()
Return
true
ifchildren
is non-zero,false
otherwise. - hasFocus
-
virtual Bool hasFocus()
Return true if this elem has focus.
- html
-
Str html
The HTML markup contained in this element.
- id
-
Str? id
The id for this element. Returns
null
if id is not defined. - insertBefore
-
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
-
Obj? invoke(Str name, Obj?[]? args := null)
Invoke the given native DOM function with optional arguments.
- lastChild
-
Elem? lastChild()
Get the last child node of this element, or null if this element has no children.
- make
-
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
-
Elem? nextSibling()
Get the next sibling to this element, or null if this is the last element under its parent.
- ns
-
Uri ns()
The namespace URI of this element.
- onEvent
-
Func onEvent(Str type, Bool useCapture, |Event| handler)
Attach an event handler for the given event on this element. Returns callback function instance.
- pagePos
-
Point pagePos()
Position of element relative to the whole document.
- parent
-
Elem? parent()
Get the parent Elem of this element, or null if this element has no parent.
- pos
-
Point pos
Position of element relative to its parent in pixels.
- prevSibling
-
Elem? prevSibling()
Get the previous sibling to this element, or null if this is the first element under its parent.
- prop
-
Get the given DOM property value for this element. Returns
null
if property does not exist. - querySelector
-
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
-
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
-
Given a page position, return
p
relative to this element. - remove
-
virtual This remove(Elem child)
Remove a child element from this element. Return this.
- removeAll
-
This removeAll()
Remove all children from this element. Returns this.
- removeAttr
-
Remove the given HTML attribute from this element.
- removeEvent
-
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
-
Void renderCanvas(|Graphics| f)
Paint a
<canvas>
element. The given callback is invoked with a graphics context to perform the rendering operation. - replace
-
virtual This replace(Elem oldChild, Elem newChild)
Replace existing child node with a new child. Returns this.
- scrollIntoView
-
This scrollIntoView(Bool alignToTop := true)
Scroll parent container so this Elem is visible to user. If
alignToTop
istrue
(the default value), the top of Elem is aligned to top of the visible area. Iffalse
, the bottom of Elem is aligned to bottom of the visible area. - scrollPos
-
Point scrollPos
Top left scroll position of element.
- scrollSize
-
Size scrollSize()
Scrollable size of element.
- set
-
@Operator
Void set(Str name, Str? val)Conveneince for
setAttr
. - setAttr
-
This setAttr(Str name, Str? val, Uri? ns := null)
Set the given HTML attribute value for this element. If
val
isnull
the attribute is removed (seeremoveAttr
). Optionally a namespace can be specified withns
. - setProp
-
This setProp(Str name, Obj? val)
Set the given DOM properity value for this element.
- size
-
Size size
Size of element in pixels.
- style
-
Style style()
Get the Style instance for this element.
- tagName
-
Str tagName()
Get the tag name for this element.
- text
-
Str text
Text content contained in this element.
- transition
-
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
-
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 forprop
andsetProp
: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 toattr
andsetAttr
: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")