Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/WickyNilliams/enquire.js

Awesome Media Queries in JavaScript
https://github.com/WickyNilliams/enquire.js

Last synced: 13 days ago
JSON representation

Awesome Media Queries in JavaScript

Awesome Lists containing this project

README

        

# [enquire.js](http://wickynilliams.github.com/enquire.js/) - Awesome Media Queries in JavaScript

[![Build Status](https://travis-ci.org/WickyNilliams/enquire.js.svg)](https://travis-ci.org/WickyNilliams/enquire.js)

`enquire.js` is a lightweight, pure javascript library (with **no dependencies**) for programmatically responding to media queries.

## Getting enquire.js

### Download

Get the latest build, ready to go:

* [Development](https://github.com/WickyNilliams/enquire.js/raw/master/dist/enquire.js) - unminified
* [Production](https://github.com/WickyNilliams/enquire.js/raw/master/dist/enquire.min.js) - minified

### Install via Bower

To install via bower, enter the following at the command line:

bower install enquire

### Install via npm

To install via npm, enter the following at the command line:

npm install enquire.js

### Build From Source

If you want build from source (and run all unit tests etc):

git clone git://github.com/WickyNilliams/enquire.js.git
cd enquire.js
npm install
grunt

Booya!

## Quick Start

The main method you will be dealing with is `register`. It's basic signature is as follows:

```javascript
enquire.register(query /* string */, handler /* object || array || function */);
```

`query` is the CSS media query you wish to respond to, and `handler` is an object containing any logic to handle the query. An example of usage is as follows:

```javascript
enquire.register("screen and (max-width:1000px)", {

match : function() {}, // OPTIONAL
// If supplied, triggered when the media query transitions
// *from an unmatched to a matched state*

unmatch : function() {}, // OPTIONAL
// If supplied, triggered when the media query transitions
// *from a matched state to an unmatched state*.
// Also may be called when handler is unregistered (if destroy is not available)

setup : function() {}, // OPTIONAL
// If supplied, triggered once immediately upon registration of the handler

destroy : function() {}, // OPTIONAL
// If supplied, triggered when handler is unregistered. Place cleanup code here

deferSetup : true // OPTIONAL, defaults to false
// If set to true, defers execution the setup function
// until the media query is first matched. still triggered just once
});
```

This should be enough to get you going, but **please read the full [enquire.js documentation](http://wickynilliams.github.com/enquire.js/)** if you wish to learn about the other cool features.

## Contributing

* Got an awesome idea?
* Found a *not-so*-awesome bug?
* Wish to get my attention through an inappropriate communication channel?!

Then please don't hesitate to raise an issue, they will *all* be looked at and tended to.

And for all the cool cats who are prepared to give their time to contribute code, feel free to open a pull request. If you could write unit tests to accompany your pull request that would be pretty sweet, but no worries if not - if it's good enough to be merged in, it's good enough for me to spend a little time to write tests on your behalf :-)

## License

License: MIT (http://www.opensource.org/licenses/mit-license.php)