From 1bd74ca4913e7de0ad75f50ffea4b7a4d23c0377 Mon Sep 17 00:00:00 2001 From: Muthu Kumar Date: Fri, 8 Dec 2017 23:47:05 +0530 Subject: [PATCH] Tooltip interaction --- js/main.js | 6 ++++++ js/modules/tooltip.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 js/main.js create mode 100644 js/modules/tooltip.js diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..b54176c --- /dev/null +++ b/js/main.js @@ -0,0 +1,6 @@ +'use strict' + +// import addToolTip from './modules/tooltip' +const addToolTip = require('./modules/tooltip') + +addToolTip('myname') \ No newline at end of file diff --git a/js/modules/tooltip.js b/js/modules/tooltip.js new file mode 100644 index 0000000..cd75a3a --- /dev/null +++ b/js/modules/tooltip.js @@ -0,0 +1,37 @@ +'use strict' + +// Toggle tooltips + +const __ = document.querySelector.bind(document) + +function toggle(obj) { + const e = __(obj) + e.style.display = + (e.style.display === 'inline-block') + ? 'none' : 'inline-block' +} + +function toggleOff(obj) { + __(obj).style.display = 'none' +} + +const addListener = (element, events, handler) => + (Array.isArray(events) + ? events + : [events]).forEach(event => + element.addEventListener(event, handler)) + +const addToolTip = selector => { + addListener( + __('#' + selector + '-click'), + ['click', 'mouseover', 'mouseout'], + () => toggle('#' + selector + '-tip')) + + addListener( + __('body'), + 'click', + (e) => { if (e.target !== __('#' + selector + '-tip')) toggleOff('#' + selector + '-tip') } + )} + +//export default addToolTip +module.exports = addToolTip \ No newline at end of file