Menu Search
Jump to the content X X
Smashing Conf Barcelona

You know, we use ad-blockers as well. We gotta keep those servers running though. Did you know that we publish useful books and run friendly conferences — crafted for pros like yourself? E.g. our upcoming SmashingConf Barcelona, dedicated to smart front-end techniques and design patterns.

Helpful JavaScript & jQuery Tools, Libraries & Plugins

The hard work of front-end designers never ceases to amaze us. Over the last months, we’ve seen Web designers creating and presenting a plethora of truly remarkable CSS techniques and tools. We have collected, analyzed, curated and feature latest useful resources for your convenience, so you can use them right away or save them for future reference.

Please don’t hesitate to comment on this post and let us know how exactly you are using them in your workflow. However, please avoid link dropping, but share your insights and your experience instead. Also, notice that some techniques are not only CSS-based, but use HTML5, JavaScript, or JavaScript-libraries as well. Thanks to all featured designers and developers for inspiring, hard work.

Further Reading on SmashingMag: Link

CSS Techniques Link

Rotational Sliders4
Eric Meyer shares six of his animated transforms that are capable of sliding around to a particular extent with non-centered transform origins.

Rotational Sliders5

Generating Organic Randomness with Prime Numbers and CSS6
At first, you may be wondering why the heck is Alex Walker talking about cicada’s and Web design. Once taking a closer look, a sort of connection between the two evolves and a ‘cicada principle’ is born.

The Cicada Principle and Why It Matters to Web Designers7

CSS3 3D Hologram8
Being inspired by holographic effects that can be achieved with HTML/CSS, Hakim El Hattab has developed his own 3D box which alters perspective depending on device orientation. Note that this requires a webkit browser and has only been tested on iPhone. Also make sure to visit more of Hakim’s CSS/HTML5 experiments9.

Hakim / CSS3 3D Hologram10

Checkerboard, striped & other background patterns with CSS3 gradients11
You’re probably familiar with CSS3 gradients by now, including the closer to the standard Mozilla syntax and the verbose Webkit one. I assume you know how to add multiple color stops, make your gradients angled or create radial gradients. What you might not be aware of, is that CSS3 gradients can be used to create many kinds of commonly needed patterns, including checkered patterns, stripes and more. Also, check out Lea’s CSS3 Patterns Gallery</a.12

Checkerboard, striped & other background patterns with CSS3 gradients13

CSS3 Keyboard14
Click in the box and start typing on your computer’s keyboard. Cleverly developed by Dustin Cartwright and Dustin Hoffman. You’ve got to respect the amount of time and effort which went into producing this demo.


CSS3 Progress Bars16
A couple of nice progress bars created by Chris Coyier that use no images — just CSS3 fancies. In browsers that do not support CSS3, these progress bars will look more simplified.

CSS3 Progress Bars | CSS-Tricks17

Hover on “Everything But”18
A tutorial by Chris Coyier which shows us how easy adding a hover state to an element can be. In this case, the hover state is applied to everything but the element actually being hovered over.

Hover on “Everything But”19

Creating a Sphere With 3D CSS20
With CSS3’s 3D trans­forms it’s possible to cre­ate a sphere-like object, albeit with many elements. Paul Hayes shares his version of a 3D CSS sphere (works in the latest Safari and iOS) and provides us with the coding needed.

Creating a sphere with 3D CSS21

CSS3 Planetarium22
This demo highlights leading edge CSS3 and HTML5 features that Mozilla Firefox and the open web community push into modern Web browsers.

Firefox 4 Demos: Awesome CSS3 Planetarium23

Natural Object-Rotation with CSS3 3D24
A tutorial by Dirk Weber that teaches us how to build a 3D packshot in HTML and CSS by applying some CSS 3D-transforms. By adding some Javascript, we can make the object freely rotatable in 3D space. And as we will enhance our Javascript with some touch-interactivity, the packshot will also work nicely in Safari for iOS-platforms like iPhone or iPad.

Natural Object-Rotation with CSS3 3D25

CSS Drop-Shadows Without Images26
Nicolas Gallagher shares presents his CSS drop-shadows without any images.

CSS drop-shadows without images27

Incrementable Length Values in Text Fields28
Lea Verou explains how to implement a feature that allows you to increment or decrement a <length> value by pressing the up and down keyboard arrows when the caret is over it.

Incrementable length values in text fields29

Beveled Corners & Negative Border-Radius with CSS3 Gradients30
Beveled corners and simulate negative border radius without images, by utilizing CSS3 gradients once again — Lea Verou is amazed by how many CSS problems can be solved with gradients alone. Works on Firefox 3.6+, latest Webkit Nightly builds, Chrome and Opera 11.10.

Beveled corners & negative border-radius with CSS3 gradients31

Flexible Height Vertical Centering With CSS, Beyond IE732
Roger Johansson shares his thoughts on how to improve centering an element both horizontally and vertically with the display:table alternative.

Flexible height vertical centering with CSS, beyond IE733

Coding up a semantic, lean timeline34
This article tells you how to create a semantic lean timeline.

Coding up a semantic, lean timeline35

CSS Border Tricks with Collapsed Boxes36
These border tricks tricks will help you to display content outside of the content box, over borders, without the use of images, CSS3 gradients or extraneous markup.

CSS Border Tricks with Collapsed Boxes37

Quick Tip: Nonintrusive CSS Text Gradients38
Jeffrey Way shows some ways for creating pure CSS text-gradients with a bit of trickery. The key is to use a mix of attribute selectors, webkit-specific properties, and custom HTML attributes.

Quick Tip: Nonintrusive CSS Text Gradients39

Bokeh with CSS3 Gradients40
Divya Manian uses the CSS gradients and shows the results of his work on a project which uses a bunch of circles as a decorative background.

Bokeh with CSS3 Gradients41

Different Transitions for Hover On / Hover Off42
Chris Coyier tries to acchieve “different transitions on mouseenter and mouseleave”, but he isn’t using JavaScript here; we’re talking about CSS :hover state and CSS3 transitions. Hover on, some CSS property animates itself to a new value; hover off, a different CSS property animates.

Different Transitions for Hover On / Hover Off43

Styling children based on their number, with CSS344
Lea Verou shows how to style children of elements based on their total number (that is, their total count).

Styling children based on their number, with CSS345

CSS Modal46
Using CSS3 tech­niques a modal box can be cre­ated with­out JavaScript or images. With a bit of ani­ma­tion, tran­si­tion and trans­form, it can be made that lit­tle bit more special. The problem: when you hit the “Back”-button after the modal has popped up and was closed, you’ll see the modal again. But maybe you’ll come with a way to fix it?

CSS Modal47

Rotating Feature Boxes48
The full effect of it (with transition animations) will work in newish WebKit and Opera browsers and Firefox 4 (in real beta as of today). Any other browser will rotate the blocks without transition animation.

Rotating Feature Boxes49

When and How to Visually Hide Content50
Visually hiding content on a web page, usually textual content, is at times a viable technique in web design and development. It can be done for several reasons, most importantly, to improve the experience of a screen reader user. Other reasons include improving readability when CSS cannot be rendered, and improving search engine optimization (SEO). Other exaples about using the Visually Hide Content are shown in this article.

When and How to Visually Hide Content51

How to avoid common CSS3 mistakes52
The new features of CSS3 bring with them complexity and new things for us to screw up. This article will help keep us in check as we start using these new features.

How to avoid common CSS3 mistakes | Feature | .net magazine53

Introduction to CSS Escape Sequences54
Escape sequences are useful because they allow style sheet authors to represent characters that would normally be ignored or interpreted differently by traditional CSS parsing rules. In this article Mert Tol shows how to use these sequences.

Introduction to CSS Escape Sequences | Mert TOL55

Wrapping Long URLs and Text Content with CSS56
To wrap long URLs, strings of text, and other content, you can just apply a carefully crafted chunk of CSS code to any block-level element .


CSS Generated Content
Trevor Davis shows on some examples what you can do with the CSS generated content.

My New Best Friend: CSS Generated Content | Viget Inspire

Controlling width with CSS3 box-sizing58
An incredibly useful CSS3 feature when you’re creating columns with floats is box-sizing. It lets you choose which box sizing model to use – whether or not an element’s width and height include padding and border or not. It makes it much easier to define flexible widths where you also need padding and/or borders. A typical example is laying out forms, which can be a real pain when you want flexible widths.

Controlling width with CSS3 box-sizing59

Revisit Hardboiled CSS3 Media Queries
Shi Chuan takes a close look at boilerplates and helps us understand the math we need to tweak the width required for a good resolution to any particular device.

iPad Orientation CSS60
Keith Chu revises Cloud Four’s work and finds a way to alleviate extra HTTP requests, not iPad-specific as well as lack of reusability. In this post, he shares with us his proposed revision to the iPad orientation CSS.

CSS Value Lengths, Times, Frequencies and Angles61
In this article the authors go over all the math type units that can be applied as property values in CSS.

CSS Tools Link

320 and up62
‘320 and Up’ prevents mobile devices from downloading desktop assets by using a tiny screen’s stylesheet as its starting point. Try this page at different window sizes and on different devices to see it in action.

320 and up63

CSS3 Generator – By Eric Hoffman and Peter Funk64
This generator was proudly designed by Eric Hoffman and coded by Peter Funk.

CSS3 Generator - By Eric Hoffman and Peter Funk65

CSS Pattern Generator66
Patternify is a simple pattern generator that enables you to not only build your patterns online, but export them with the base64 code, so you don’t even need an image file anymore. Just include the code in your CSS and you’re ready to go. Created by Sacha Greif.

CSS Pattern Generator67 – Web page alignment made easy68
A clean and simple way to help align your layouts. No complex grid frameworks necessary.Just put your dimensions after our URL to get a background guide image to work with in your browser. Grids are created on the fly, so any combination should work. - Web page alignment made easy69

The 1140px Grid: Fluid down to mobile
The 1140 grid fits perfectly into a 1280 monitor. On smaller monitors it becomes fluid and adapts to the width of the browser.

The 1140px Grid: Fluid down to mobile

Fighting the @font-face FOUT70
Paul Irish’s 2011 update for the @font-face FOUT issue. Good news: Firefox 4 has no FOUT, IE9 does, and FOUT-b-GONE71 will help you out with that.


CSS3 Github Buttons73
CSS3 Buttons is a simple framework for creating good-looking GitHub style button links.

CSS3 Buttons | Simple CSS3 framework for creating GitHub style button links74

CSS3 Facebook Buttons75
CSS3 Facebook Buttons

CSS3 Facebook Buttons76

On the Internets, speed is everything – which means that when it comes to CSS & Javascript files, size DOES matter. By automatically minimizing and combining your files for you, Minimee takes the heavy lifting out of keeping your files svelte.

Adapt.js - Adaptive CSS78

one script closer to designing in the browser.

Adapt.js - Adaptive CSS80

Bootstrap is a pack of mixins and variables to be used in conjunction with LESS, a CSS preprocessor for faster and easier web development.

Adapt.js - Adaptive CSS82

Animatable: Create CSS3 animations and advertising for Webkit browsers83
Animatable is the easy way to create CSS3 animations and advertising for Webkit browsers on any platform or device — including Android, BlackBerry, iOS and WebOS.

Animatable | Create CSS3 animations and advertising for Webkit browsers84

Ceaser: CSS Easing Animation Tool85
Ceaser is an CSS Easing Animation Tool.

Ceaser - CSS Easing Animation Tool86

This is provided without warranty, guarantee, or much in the way of explanation.


CSS Pivot87
This tool allows you to add CSS styles to any website, and share (and adjust) the result with a short link.

CSS Pivot88

Roots WordPress Theme89
Roots is a starting WordPress theme made for developers that’s based on HTML5 Boilerplate, Blueprint CSS (or and Starkers that will help you rapidly create brochure sites and blogs.

Roots WordPress Theme90

Free Online CSS3 Typeset Style Generator91
An advanced generator of CSS buttons; the tools allows you to define font and color variations, shadows, borders, corners etc.

Free Online CSS3 Typeset Style Generator92

You hate writing vendor prefixes for all browsers? The CSSPrefixer does it for you.


This tool will give your Web typography a head start. Type-a-file is essentially a small collection of CSS stylesheets with heavy focus on rich and beautiful typography. The tool uses Typekit to preview the stylesheets, so if you have a Typekit-account, you could purchase the font license and have exact the same typography on your website.


A Best Practice Baseline for Your Mobile Web App95
Mobile Boilerplate is your trusted template made custom for creating rich and performant mobile web apps. You get cross-browser consistency among A-grade smartphones, and fallback support for legacy Blackberry, Symbian, and IE Mobile.


Code Beautifier97
This tool allows you to format, clean up and optimize your stylesheets.

Adapt.js - Adaptive CSS98

Markup Generator99
Markup Generator is a simple tool created for HTML/CSS coders that are tired of writing boring frame code at the very beginning of slicing work.

Adapt.js - Adaptive CSS100

CSS Sprite Generator101
This tool allows you to create and maintain your CSS sprites.

Adapt.js - Adaptive CSS102

A fast & lightweight polyfill for min/max-width CSS3 Media Queries (for IE 6-8, and more)

Adapt.js – Adaptive CSS104
Adapt.js simply checks the browser width, and serves only the CSS that is needed, when it is needed.

Firmin, a JavaScript animation library using CSS transforms and transitions105
Firmin is a JavaScript animation library that uses CSS transforms and transitions to create smooth, hardware-accelerated animations.

Command-line CSS spriting106
The author shows, how to create CSS sprites from the command line alone.

Last Click Link

Code Standards
This document contains normative guidelines for web applications built by the Interface Development practice of Isobar North America (previously Molecular). It is to be readily available to anyone who wishes to check the iterative progress of our best practices.

Code Standards

How to Manage CSS Explosion107
A very useful thread on StackOverflow on how to keep CSS files organized and clean.

How to Manage CSS Explosion108

(vf) (ik)

Footnotes Link

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108

↑ Back to top Tweet itShare on Facebook

Soh Tanaka, based in Los Angeles, CA, is a passionate front-end developer and designer who recently launched a CSS Gallery called Design Bombs. He specializes in CSS driven web design with an emphasis on usability and search engine optimization. For more front-end Web development tutorials, check out his Web design blog.

  1. 1

    Marcin Dziewulski

    April 7, 2011 7:05 am

    I would like to suggest MobilyMap plugin: – jQuery plugin that can create a Google Maps-like, draggable interface from any image. Cheers!

    • 2

      Ryan Donahue

      April 8, 2011 5:52 am

      I just searched the entire post for a map script and didn’t see any so thanks for posting this.

  2. 3

    Sean McCambridge

    April 7, 2011 7:14 am

    Great post. I’m going to bookmark this so I remember where to find these js tools. With so many choices, I’d love to see some interviews with prominent js developers to see what they’re using at the moment individually.

  3. 4

    Nice roundup ;) I’ve been using Highcharts recently and would advise to anyone in need for simple yet great looking data visualizations.
    Here’s are some things we did with Highcharts:

    Lettering.js also looks real nice ;)

  4. 6


    April 7, 2011 7:51 am

    You know you’re good, but I think you guys are simply amazing. Keep pushing us into better web developments with your libraries, designs, tips and tricks.

    Kind regards,

  5. 7

    Joseph McCullough

    April 7, 2011 7:52 am

    I’m surprised JSHint isn’t on here.

  6. 8

    But I also used this list

  7. 9

    Regarding the poll question (more roundups like this in the future?) I say yes, but only if this sample is representative of what’s to come. Everything in this roundup is either best of breed or new+compelling+innovative. No jQuery Slider roundups, please. ;-)

  8. 10

    I’m a JS junkie so this list is something I’m going to keep in mind. Thank you!

  9. 11


    April 7, 2011 9:40 am

    Absolutely fantastic post

  10. 12

    Marcus Hodges

    April 7, 2011 9:42 am

    Minimee is an ExpressionEngine add-on only. To use it elsewhere you’d have to rip out the included, third-party libraries and repurpose them. Perhaps worth mentioning.

  11. 14

    Elf M. Sternberg

    April 7, 2011 11:03 am

    Hey, no love for ProcessingJS? I mean, seriously, is there anything John Resig can’t do?

    • 15

      processing-js is mint. Definitely worth checking out! I’d love to see more developers take advantage of this library for animations inside a design, like the header on processing-js’ website.

  12. 16

    Lettering.js is an incredibly useful script. Works great when you need to kern a typographical logo.

  13. 17

    Awesome post could spend all night looking through them. Definitely want to find some projects to use some of these!

  14. 18

    Nothing at all for Mootools, such a shame ;)

  15. 19

    amazing collection,
    i’m looking for a js framework to do some calculation or simple maths, any idea ?

  16. 22

    nice list, i fall in love with popcorn.js ;)

  17. 23

    Kien Nguyen

    April 7, 2011 5:41 pm

    Love these libraries so much. Very useful. Thanks SM!

  18. 24

    Muthu Kumaran

    April 7, 2011 9:54 pm

    Good collections. Now I know where to look for JS libraries :)
    Nice work!!!

  19. 25

    These kind off posts are the most usefull too me. Thanks SM

  20. 26

    Amazing collection, must bookmarked for every developer. many thanks

  21. 27

    Best article ever on SmashingMagazine !!!

    I was waiting for this kind of articles since years !!!

  22. 28

    Ivan Filipov

    April 8, 2011 1:21 am

    Thank`s for great article :)

  23. 29

    Great list, thanks for the hard work compiling it.

    Maybe it’s just my age, but I do find these lists a bit overwhelming. There’s just too much good stuff out there.

    Maybe it would feel less overwhelming if there was a table of contents at the top? Perhaps get a little sausage.js action on the go too? I’m not sure what the answer is, however I do have a tendency to abandon reading posts like this — as good as they are.


  24. 30

    wonderful list of plugins and js stuff.. :)

  25. 31

    The idea of Less makes me feel very nervous, to say the least. Why? Because JavaScript is the layer for behaviour, and CSS is the layer for presentation. Less looks to be putting presentation functionality into the wrong layer.

    Why is this a problem? Two main reasons. 1) It’s violating the separation of concerns, which could lead to confusion down the line when some future designer comes into a project and can’t find the presentation data in the CSS because it’s actually implemented in JavaScript. 2) A JavaScript error in some other script on your page could break the presentation that depends on Less, leaving your page looking anything from rather odd to completely broken, depending on how dependant on Less your design is. And that’s saying nothing for web crawlers, non-visual browsers and other user agents that don’t know JavaScript or have it turned off.

    While it would be nice if CSS was more featureful (though it does support some limited variables as of more recent versions such as counters) I still feel using JavaScript to fill the gaps isn’t the way to go.

  26. 32

    Wellington Villegas

    April 8, 2011 5:22 am

    Everytime i get amazing tools here.

    Thanks Smashing Magazine

  27. 33

    Two other tools that have helped me tremendously:

    This JS gives you the ability to write specific CSS code for each operating system and each browser.

    corrects standards deficiencies in IE:

  28. 34

    You might want to revise your list and remove the april fools jokes *cough* JavaScript Library Boilerplate *cough*

  29. 35

    Gopi Sundharam

    April 8, 2011 7:19 pm

    Awesome set of libraries and plugins. Thanks for sharing.

  30. 36

    Neat Post … Bookmarked . Keep em coming SM .

  31. 37

    Hunter Hastings

    April 9, 2011 10:20 am

    Fantastic post full of quality stuff.

    HighCharts is a great inclusion. I just started using them the other day for some projects. Clean, powerful, and all around aweosme.

  32. 38

    Great List!

    I would like to recommend jQuery Smart Autocomplete ( plugin to this list.

    Creating sophisticated, custom auto complete fields have become easy with this plugin.

  33. 39

    What’s wrong with jQuery and Javascript, and writing your own code?

    It seems like half my business these days is cleaning up sites built by other developers, who each use some different framework that I have to decipher in order to unbreak the mess they made. The work might be half my business, but it seems to eat up 80% of my time.

    I don’t feel like there is anything I can’t do with jQuery and some time and energy. Is our industry just so overloaded with a lack of creative problem solvers that all of these are necessary?

    I am sure I was probably of the same mind when jQuery was new – at least new to me. But it is so widely in use, and exists on user’s computers via the various CDN hosts that it exists already on most people’s computers these days, which cuts down on load time and speed of site, as well as server load and http requests for the client’s web server.

    Sites like this shove dozens upon dozens of articles at us about how to improve speed, and how adding our fun little gizmos to sites don’t improve overall user experience and decrease the usability of a site, then follow up with articles like these that drive people in the complete opposite direction.

    Ages ago, some wizened old fool said “Too many cooks spoil the soup”. This axiom holds true still in the technology world.

  34. 40

    Simply WOW.Great compilation. Thanks!

  35. 41

    Someone knows about a good or similar implementation for LightBox in jQuery?


  36. 42

    good article, i like it. thank you very much . hoho

  37. 43

    Very nice round up! Some tools are really great.

    You might also want to include dhtmlx library in your next round up:

    Although it’s not very spread out, they have a good set of JavaScript ui widgets, and a very powerful datagrid.

  38. 44

    Angel Grablev

    April 14, 2011 2:28 pm

    Another great new resource is the Vanity jQuery Toolset it has a great amount of really useful jQuery plugins.

  39. 45

    I think you forgot Mootools..

  40. 46

    good collection and sharing, thanks. One more site to suggest:

  41. 47

    Not able to get Highcharts to work for me yet but it seems very interesting and useful
    Thanks for sharing!

  42. 48

    great job !!!!

  43. 49

    Hum… The Javascript Library Boilerplate is a joke, right?

  44. 50

    Shai Ben-Yehuda

    April 22, 2011 7:17 am

    Please add jBart to the list (
    jBart is a visual jquery toolkit.

    Javascript libraries are too limiting, they force their HTML and API. In too many cases they are not flexible enough to be used.
    jQuery is different. It does not force any html on the developer and does not have closed data API. This is the reason it is so popular.

    Like jQuery, jBart does not force its html or data structures on you.
    You start with your xml data and build the widgets as a view/editor of your data. You can replace/inject html and javascript at any level.

    jBart is very useful to build complex interactive e-commerce search boxes and interactive product galleries with complex filtering.
    Look at interactive smashingmagazine search box (with images) done with jBart, and goto ‘Customize’ to see how it was developed:

  45. 51

    I am glad I came across your blog today as it will now be part of my daily reading. Thanks for sharing this interesting article.

  46. 52


    May 4, 2011 12:59 am

    Thanks for sharing good work…

  47. 53

    Lee Peterson

    May 22, 2011 10:08 am

    Really surprised head.js isn’t on this list.

  48. 54

    thanks, really interesting article, probably you spent a lot of time harvesting that tools out there

  49. 55

    hey can you make a google chrome browser plugin that add the ability to pie an image or advertisement. like pie in the face plugin. (image or advertisement gets pied in the face sorta thing). and it can stay there till you leave the page or go away after a small time. Be able to adjust the duration of the pie aswell.

  50. 56

    Thanks for sharing
    good work…

  51. 57

    jQuery Waypoints is great, except for the bug on iOS devices.
    If you reload a scrolled page with Waypoints implemented it doesn’t fire an event. So if you fade in your content it will just stay invisible after such reload – till the next scroll event. I found no fix for that on the net, so made my own one.
    I detect iOS devices. Once detected, I fire all the Waypoints events on page load. That fixes the bug on mobile and keeps the Waypoints working on desktop.

    The code itself is:


    var isiPad = navigator.userAgent.match(/iPad/i) != null;
    var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
    if (isiPad || isiPhone) {
    // here I fire the events


↑ Back to top