UNPKG

mdui-ext

Version:

a extension for mdui !(not completed)

163 lines (162 loc) 5.15 kB
import { ClassUtil } from "../utils/ClassUtil"; class MduiFloatActionButtonElement extends HTMLElement { constructor() { super(); this.classList.add("mdui-fab"); this.classList.add("mdui-ripple"); // 如果标签不是空标签,就会尝试将标签内文字转换成图标 const iconText = this.innerText; if (iconText != "") { const icon = document.createElement("i"); icon.innerText = String(iconText).toLowerCase(); this.innerText = ""; icon.classList.add("mdui-icon"); icon.classList.add("material-icons"); this.appendChild(icon); } const timerListener = () => { if (this.hide != this._hide) { this._hide = this.hide; if (this.hide) { this.classList.add("mdui-fab-hide"); } else { this.classList.remove("mdui-fab-hide"); } } if (this.fixed != this._fixed) { this._fixed = this.fixed; if (this.fixed) { this.classList.add("mdui-fab-fixed"); } else { this.classList.remove("mdui-fab-fixed"); } } if (this.color != this._color) { this._color = this.color; if (this.color) { ClassUtil.changeColor(this.color, this); if (this.color == "white") { this.classList.add("mdui-ripple-black"); } else { this.classList.remove("mdui-ripple-black"); } } } if (this.mini != this._mini) { this._mini = this.mini; if (this.mini) { this.classList.add("mdui-fab-mini"); } else { this.classList.remove("mdui-fab-mini"); } } }; setInterval(timerListener, 50); } /** * 在浮动操作按钮上设置fixed属性可以使浮动操作按钮固定在容器右下方 * 示例: * <mdui-fab fixed>add</mdui-fab> */ get fixed() { const fixedAttr = this.getAttributeNode("fixed"); if (fixedAttr == null) { return false; } return fixedAttr.value != "false"; } set fixed(isFixed) { this._fixed = isFixed; this.setAttribute("fixed", String(isFixed)); if (isFixed) { this.classList.add("mdui-fab-fixed"); } else { this.classList.remove("mdui-fab-fixed"); } } /** * 在浮动操作按钮上设置color属性可更改按钮颜色,默认白色 * 示例:靛青色浮动操作按钮 * <mdui-fab color="indigo">add</mdui-fab> */ get color() { const colorAttr = this.getAttributeNode("color"); if (colorAttr == null) { return "white"; } return colorAttr.value; } set color(color) { this._color = color; this.setAttribute("color", color); ClassUtil.changeColor(color, this); if (color == "white") { this.classList.add("mdui-ripple-black"); } else { this.classList.remove("mdui-ripple-black"); } } /** * 在浮动操作按钮上设置hide属性可以使按钮以动画的形式隐藏 * 示例:哈?这个没法演示诶 */ get hide() { const hideAttr = this.getAttributeNode("hide"); if (hideAttr == null) { return false; } return hideAttr.value != "false"; } set hide(isHide) { this._hide = isHide; this.setAttribute("hide", String(isHide)); if (isHide) { this.classList.add("mdui-fab-hide"); } else { this.classList.remove("mdui-fab-hide"); } } /** * 在浮动操作按钮上设置mini属性可以让按钮变成迷你型浮动操作按钮 * 示例: * <mdui-fab mini>add</mdui-fab> */ get mini() { const miniAttr = this.getAttributeNode("mini"); if (miniAttr == null) { return false; } return miniAttr.value != "false"; } set mini(isMini) { this._mini = isMini; this.setAttribute("mini", String(isMini)); if (isMini) { this.classList.add("mdui-fab-mini"); } else { this.classList.remove("mdui-fab-mini"); } } } class MduiFabWrapperElement extends HTMLElement { constructor() { super(); this.classList.add("mdui-fab-wrapper"); this.setAttribute("mdui-fab", "{trigger: 'hover'}"); } } class MduiFabDialElement extends HTMLElement { constructor() { super(); this.classList.add("mdui-fab-dial"); } } export { MduiFloatActionButtonElement, MduiFabWrapperElement, MduiFabDialElement };