trying an un-annoying lightbox

05/23/2010

Lightboxes are really irritating. No users I ever speak to like them, but all website owners love them - communication problems there, maybe?

Here's why I don't like lightboxes:

  • They usually override keyboard functionality. I use my escape key to clear fields and I use my arrow keys to navigate pages - don't overwrite that. I know best, not you.
  • They're unnecessarily schmancy and animated - if I opened a lightbox, chances are I want to look at a picture and nothing else. Leave me alone otherwise. I don't want to see your great "close" icon or any of that crap so just drop it!
  • Some are nearly impossible to close

There are probably a bunch more reasons, but you get the idea.

My lightbox stays out of your way. It doesn't override any standard keyboard behaviour and it doesn't use visual fluff to irritate you. What it does do is open a big version of the picture you clicked on so you can see it in more detail. When you're done, it closes. Here's how you use it:

  • Click a flickr image to open the lightbox (this might be the last time you need your mouse/trackpad)
  • j = next
  • k = previous
  • o = open the flickr page for this image
  • q = close the lightbox
  • You can also click anywhere to close the light when it's open

If you're wondering why j,k,q; use Vim for a day. I would've used e to open, but who's going to remember that?

I'm probably going to implement a resizing thing for people with small monitors so that screens don't get flooded - if this affects you, please tell me whether you'd like the process to automatically detect your browser size, or whether you'd prefer to handle it yourself. I'm aware that this will affect basically all portrait images - this will probably make me make it automatic. Pictures are pretty pointless if you have to scroll, but I'm tired now and can't be bothered.

If you want the code for this, view source and find the javascript yourself. There's a PHP file to make Flickr API calls, but that encapsulates my API credentials. If you can't figure out what to do here, holla so we can all have a good laugh.