Closing popovers in Ratchet

Ratchet is a css/js library for prototyping iOS apps. Maintained by Twitter, it looks similar to its more established older brother Bootstrap but is much less mature and has an anemic API.

Simple things like closing its popovers don’t seem to exist. If you need to do this, digging into the source reveals

    element.addEventListener('touchend', function () {  
          popover.addEventListener('webkitTransitionEnd', onPopoverHidden);
          popover.classList.remove('visible');
          popover.parentNode.removeChild(backdrop);
    });

for the popover backdrop, so doing something like

    var backdrop = document.querySelector('div.backdrop');  
    if (backdrop) {  
      // sad there's not real way to close this
      // https://github.com/twbs/ratchet/issues/625
      var evt = document.createEvent('TouchEvent');
      evt.initUIEvent('touchend', true, true);
      evt.target = backdrop;
      backdrop.dispatchEvent(evt);
    }

to dispatch the touch event was sufficient for my purposes.

See https://github.com/twbs/ratchet/issues/625 for a short discussion on this.

Author image Min'an

Browser storage options, specifically Cordova, Android + iOS

Specifically cordova, Android + iOS

Interesting alternatives:

Author image Min'an

Simple history state tracker for Ionic

Ionic doesn’t track history too well if you’re going between tabbed and non-tabbed layouts. Here’s a drop-dead simple implementation of a history tracker:

Then to navigate back from your controller, just use the goBack method on the historyState service.

Author image Min'an

getBBox returns a 0 sized rect

TL;DR: Your svg has to be visible for getBBox to be useful

While working with d3 recently, I was trying to calculate the width of some elements using getBBox , except it kept returning a 0-sized rect.

It turned out that the svg was being rendered when its parent <div> was not visible. Calling getBBox when the svg is visible gives the right results.

Apparently webkit used to some have issues with this but was patched a long time ago.

Hope this helps.

Author image Min'an