Tooltip
Example#
Code-example#
<measmatic-grid>
<div class=row style=display:flex;justify-content:space-between>
<button style="align-self:flex-start;margin:8px;border:2px solid #1976d2;background:#fff;padding:8px 16px">Top-Edge (top→bottom)
<measmatic-tooltip label=top→bottom position=top></measmatic-tooltip>
</button>
<button style="align-self:flex-start;margin:8px;border:2px solid #388e3c;background:#fff;padding:8px 16px">Bottom-Edge (bottom→top)
<measmatic-tooltip label=bottom→top position=bottom></measmatic-tooltip>
</button>
</div>
<div class=row style=display:flex;justify-content:space-between>
<button style="align-self:flex-end;margin:8px;border:2px solid #d32f2f;background:#fff;padding:8px 16px">Left-Edge (left→right)
<measmatic-tooltip label=left→right position=left></measmatic-tooltip>
</button>
<button style="align-self:flex-end;margin:8px;border:2px solid #fbc02d;background:#fff;padding:8px 16px">Right-Edge (right→left)
<measmatic-tooltip label=right→left position=right></measmatic-tooltip>
</button>
</div>
</measmatic-grid>
<measmatic-grid>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">none
<div class=measmatic-tooltip-content>.</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">top left
<div class="measmatic-tooltip-content measmatic-tooltip-content__top-left">...</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">top
<div class="measmatic-tooltip-content measmatic-tooltip-content__top">..</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">top right
<div class="measmatic-tooltip-content measmatic-tooltip-content__top-right">...</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">right
<div class="measmatic-tooltip-content measmatic-tooltip-content__right">....</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">bottom right
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom-right">.....</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">bottom
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom">......</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">bottom left
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom-left">.......</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">left
<div class="measmatic-tooltip-content measmatic-tooltip-content__left">.......</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__show" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">center
<div class="measmatic-tooltip-content measmatic-tooltip-content__center">........</div>
</div>
<div class="measmatic-tooltip measmatic-tooltip__hover" style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">hover test
<div class="measmatic-tooltip-content measmatic-tooltip-content__top-left">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__top">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__top-right">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__right">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom-right">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom-left">.</div>
<div class="measmatic-tooltip-content measmatic-tooltip-content__left">.</div>
</div>
<button style="margin:50px;padding-left:0;border:solid 1px red;width:max-content" onclick="this.tooltip=createTooltip(this,{})">Javascript</button>
<div id=htmlelement1 style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">HTMLElement
<measmatic-tooltip label=default></measmatic-tooltip>
</div>
<div id=htmlelement2 style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">HTMLElement
<measmatic-tooltip label="delay=2000" position=top delay=2000></measmatic-tooltip>
</div>
<div id=htmlelement3 style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">HTMLElement
<measmatic-tooltip label="duration=2000" position=top duration=2000></measmatic-tooltip>
</div>
<div id=htmlelement4 style="margin:50px;padding-left:0;border:solid 1px red;width:max-content">HTMLElement
<measmatic-tooltip label="delay,duration=2000" position=top delay=2000 duration=2000></measmatic-tooltip>
</div>
<div style=margin:50px>
<div>
<button onclick="document.querySelector('#nohover').tooltip.show()">show</button>
<button onclick="document.querySelector('#nohover').tooltip.hide()">hide</button>
<button onclick="document.querySelector('#nohover').tooltip.pop()">pop</button>
</div>
<div id=nohover style="padding-left:0;border:solid 1px red;width:max-content">nohover
<measmatic-tooltip label="delay,duration=500" hover=false position=bottom delay=500 duration=500></measmatic-tooltip>
</div>
</div>
</measmatic-grid>
Measmatic-tooltip#
Tooltips can be generated by three different ways. Once generated the tooltip will add as a property in the parent Element and can be modified and triggered there.
Building
1.Custom-element
<div id="parent">HTML-Element
<measmatic-tooltip position="top" duration="2000" delay="2000" label="custom-element" hover="false"></measmatic-tooltip>
</div>
After initialising
2.Javascript
<div id="parent">
</div>
<script>
var parent = document.getElementById("parent");
parent.tooltip = createTooltip(parent,{
position:"top",
duration:0,
delay:0,
label:"Hello Tooltip",
hover:false
})
parent.tooltip.pop();
</script>
3.Html
hoverable tooltip at top-left position
<div id="parent" class="measmatic-tooltip measmatic-tooltip__hover">HTML-Element
<div class="measmatic-tooltip-content measmatic-tooltip-content__top-left">Tooltip top-left</div>
</div>
tooltip at bottom position without hover
<div id="parent" class="measmatic-tooltip">HTML-Element
<div class="measmatic-tooltip-content measmatic-tooltip-content__bottom">Tooltip top-left</div>
</div>
Customiziation
position:stringdefines the preferred position of the tooltip depending on parent element:top,top-right,right,bottom-right,bottom,bottom-left,left,top-left,center. The tooltip can flip automatically when the preferred position would overflow the viewport.duration:numbertime in ms how long the tooltip will be displayeddelay:numbertime in ms needed to display the tooltiplabel:stringdefines the text shown in the tooltiphover:booleandefines if the tooltip will be shown by hovering over the parent element (default: true)
Functions
createTooltip(element, options)creates tooltipoptionsis a object and containsposition:string,duration:number,delay:number,label:string,hover:booleanpop()triggers tooltip (show and hide)show()shows tooltiphide()hides tooltip
<button onclick="this.tooltip.pop()">;
parent.tooltip.show();
parent.tooltip.hide();