1 /* ----------------------------------
3 * Licensed under The MIT License
4 * http://opensource.org/licenses/MIT
5 * ---------------------------------- */
11 var findPopovers = function (target) {
12 var i, popovers = document.querySelectorAll('a');
13 for (; target && target !== document; target = target.parentNode) {
14 for (i = popovers.length; i--;) { if (popovers[i] === target) return target; }
18 var onPopoverHidden = function () {
19 document.body.removeChild(backdrop);
20 popover.style.display = 'none';
21 popover.removeEventListener('webkitTransitionEnd', onPopoverHidden);
24 var backdrop = function () {
25 var element = document.createElement('div');
27 element.classList.add('backdrop');
29 element.addEventListener('touchend', function () {
30 popover.addEventListener('webkitTransitionEnd', onPopoverHidden);
31 popover.classList.remove('visible');
37 var getPopover = function (e) {
38 var anchor = findPopovers(e.target);
40 if (!anchor || !anchor.hash) return;
42 popover = document.querySelector(anchor.hash);
44 if (!popover || !popover.classList.contains('popover')) return;
49 window.addEventListener('touchend', function (e) {
50 var popover = getPopover(e);
54 popover.style.display = 'block';
56 popover.classList.add('visible');
58 popover.parentNode.appendChild(backdrop);
61 window.addEventListener('click', function (e) { if (getPopover(e)) e.preventDefault(); });