www.it-ebooks.info
jQuery 1.4 Animation Techniques
Beginner's Guide
Quickly master all of jQuery's animaon methods and build
a toolkit of ready-to-use animaons using jQuery 1.4
Dan Wellman
BIRMINGHAM - MUMBAI
www.it-ebooks.info
jQuery 1.4 Animation Techniques
Beginner's Guide
Copyright © 2011 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system,
or transmied in any form or by any means, without the prior wrien permission of the
publisher, except in the case of brief quotaons embedded in crical arcles or reviews.
Every eort has been made in the preparaon of this book to ensure the accuracy of the
informaon presented. However, the informaon contained in this book is sold without
warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers
and distributors will be held liable for any damages caused or alleged to be caused directly
or indirectly by this book.
Packt Publishing has endeavored to provide trademark informaon about all of the
companies and products menoned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this informaon.
First published: March 2011
Producon Reference: 1140311
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-849513-30-2
www.packtpub.com
Cover Image by Filippo ()
www.it-ebooks.info
Credits
Author
Dan Wellman
Reviewers
Shaiful Islam
Ben Nadel
Cyril Pierron
Acquision Editor
Sarah Cullington
Development Editor
Roger D'souza
Technical Editor
Conrad Sardinha
Indexer
Hemangini Bari
Editorial Team Leader
Akshara Aware
Project Team Leader
Priya Mukherji
Project Coordinator
Sneha Harkut
Proofreader
Aaron Nash
Producon Coordinator
Melwyn D'sa
Cover Work
Melwyn D'sa
www.it-ebooks.info
Foreword
Since the rst jQuery homepage in 2006, an interacve example introduced visitors to jQuery
with a single line of code, and a buon to run that code. When clicked, it added a class to a
hidden paragraph, and animated that paragraph to become visible.
Today, in late 2010, the API documentaon has 15 methods listed in the Eects category.
These provide built-in animaons for fading and sliding, as well as various ways to create
custom animaons. When combined with color and class animaons and custom easings
that jQuery UI provides, there are even more ways to create animaons.
A good rule of thumb for using animaons is to use slides when showing elements within
the pageow, and fades for overlays, like a toolp. But that's just a rule of thumb, and with
all the tools available there's a lot more opportunity to improve interacons, as well as
messing them up.
With that in mind, a full book on animaons starts to make a lot of sense. It makes even
more sense when also taking into account upcoming technologies which aren't bound to
jQuery directly, like CSS3 animaons or animated canvas drawings.
As a tech reviewer I've worked with Dan on his jQuery UI 1.6 and jQuery UI 1.7 books. At the
me the jQuery UI team was sll guring out the scope and exact direcon of the project,
including several direcon changes at the me when Dan was wring the rst book. Despite
these challenges Dan did a great job providing documentaon and extensive examples on
how to use and combine the widgets and interacons jQuery UI provides.
With this book Dan brings his experience in wring on jQuery topics to teach you when
and how to use animaons to create beer user experiences. I hope it serves you well.
Jörn Zaeerer
jQuery UI development lead, plugin author, and QUnit maintainer
www.it-ebooks.info
About the Author
Dan Wellman is an author and web developer based on the South coast of the UK. By day
he works alongside some of the most talented people he has had the pleasure of calling
colleagues, for a small, yet accomplished digital agency called Design Haus. By night he
writes books and tutorials on a range of frontend topics. He is hopelessly addicted to jQuery.
His life is enriched by four wonderful children, a beauful wife, and a close circle of family
and friends. This is his h book.
I would like to thank the hugely supporve and paent editorial team at
Packt, without whom this book would not exist. I would also like to thank
the reviewers, especially Ben Nadel and Cyril Pierron, who put aside
their own personal projects and dedicated countless hours to ensuring
the book's technical accuracy. I'd also like to say a big Hey! to some of
my closest friends, in no parcular order; Andrew Herman, Steev Bishop,
Aaron Matheson, Eamon O'Donoghue, James Zabiela, Mike Woodford, and
John Adams.
www.it-ebooks.info
About the Reviewers
Shaiful Islam completed his graduaon in Computer Science and Engineering (CSE) from
IIUC (Internaonal Islamic University Chiagong), and loves web development and PHP.
He is a Soware Engineer, with three years of experience in web development and a
keen lover of web technology. He also loves CSS, JQuery, CodeIgniter, Cakephp, and Zend
Framework, which showed him the way to develop his career in web development and the
programming eld.
His moo is: Work through best approach, commitment, skill, and keep smiling.
Currently he is working for "bGlobal Sourcing LLC" as a Soware Engineer.
I would like to thank all of my friends, colleagues, and those senior
brothers who reviewed this type of book before and from whom I got
inspiraon. Special thanks to everyone at Packt Publishing.
Ben Nadel is the chief soware engineer at Epicenter Consulng, a Manhaan-based web
applicaon development rm specializing in innovave custom soware that transforms
the way its clients do business. He is also an Adobe Community Professional as well as an
Adobe Cered Professional in Advanced ColdFusion. In his spare me, he blogs extensively
about all aspects of obsessively thorough web applicaon development at http://www.
bennadel.com/
.
www.it-ebooks.info
Cyril Pierron is an engineer, a web addict, tech savvy, and life curious. He started
programming at age 8, and has been working in telecommunicaons for the past 12 years.
He is married and a father of a lovely baby girl.
I would actually like to thank Twier which gave me the opportunity to see
Packt Publishing message when they were looking for reviewers. Obviously
thanks to the Packt Publishing team for giving me the chance to work on
one of their tles. Lots of thanks to Dan Wellman who I actually followed
on Twier previously to realizing I was reviewing one of his books. This is
an amazing piece that draws inspiraon and Dan is the most cheerful,
open minded, and supporve person. Finally thanks to my wife who
showed quite some paence and support when I kept working on this
book aer hours.
www.it-ebooks.info
www.PacktPub.com
Support les, eBooks, discount offers and more
You might want to visit www.PacktPub.com for support les and downloads related to
your book.
Did you know that Packt oers eBook versions of every book published, with PDF and ePub
les available? You can upgrade to the eBook version at www.PacktPub.com and as a print
book customer, you are entled to a discount on the eBook copy. Get in touch with us at
for more details.
At www.PacktPub.com, you can also read a collecon of free technical arcles, sign up
for a range of free newsleers and receive exclusive discounts and oers on Packt books
and eBooks.
Do you need instant soluons to your IT quesons? PacktLib is Packt's online digital book
library. Here, you can access, read and search across Packt's enre library of books.
Why Subscribe?
Fully searchable across every book published by Packt
Copy and paste, print and bookmark content
On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access
PacktLib today and view nine enrely free books. Simply use your login credenals for
immediate access.
www.it-ebooks.info
www.it-ebooks.info
www.it-ebooks.info
For Pat Spacagna, the greatest mother-in-law I could have wished for. You are fondly
remembered, but sorely missed. May you rest in peace always.
www.it-ebooks.info
www.it-ebooks.info
Table of Contents
Preface 1
Chapter 1: Introducon 7
Animaon on the Web 7
The power of animated UIs 8
When to use animaons 9
When not to use animaons 10
Animaon checklist 10
Animang with jQuery 10
The template le 11
Creang a project folder 13
A basic animaon example 13
Time for acon – creang an animated loader 14
Summary 17
Chapter 2: Fading Animaons 19
Fading animaons 20
Conguring the animaons with arguments 20
jQuery's Unied Animaon API 21
Enhancing simple CSS hover states with fadeIn 22
Time for acon – adding the underlying markup and styling 23
Time for acon – scripng the animaon 25
Fading elements out 27
Time for acon – creang the dialog 29
Fading PNGs in IE 31
Using fadeToggle() for convenient state-checking logic 33
Time for acon – showing and hiding with fadeToggle() 34
Greater opacity control with fadeTo() 36
Animang to paral opacity 37
Time for acon – creang the example page 38
www.it-ebooks.info
Table of Contents
[ ii ]
Time for acon – adding the behavior 39
Fading table-rows in Internet Explorer 43
Time for acon – fading table-rows in IE 43
Showing and hiding 46
Flyout submenus with jQuery's show/hide logic 47
Time for acon – animaons with show/hide 49
Animated toggling 52
Time for acon – replacing show and hide with toggle 52
Summary 53
Chapter 3: Managing Animaons 55
Working with the queue 56
Viewing the queue 57
Time for acon - viewing the queue 57
Adding a funcon to the queue 61
Time for acon – adding a single funcon to the queue 61
Using a callback funcon to keep the queue moving 62
Time for acon – keeping the queue running 62
Replacing the queue 63
Time for acon – replacing the queue 63
Ensuring custom queues iterate correctly 65
Time for acon – dequeueing funcons 66
Stopping an animaon 66
Time for acon – prevenng animaon build-up using the stop method 68
Delaying queue execuon 69
Clearing the queue 69
Useful properes of the jQuery object 70
Globally disabling animaons 70
Changing the default frame rate 70
Summary 71
Chapter 4: Sliding Animaons 73
Sliding elements into view 74
Time for acon – creang a slide-down login form 75
Sliding elements out of view 79
Time for acon – sliding elements up 80
Toggling the slide 83
Time for acon – using slideToggle 83
Easing 89
Time for acon – adding easing 90
Using an object literal to add easing 91
Time for acon – using the alternave argument format 91
www.it-ebooks.info
Table of Contents
[ iii ]
The icker eect 92
Time for acon – avoiding the icker eect 92
Time for acon – xing the icker 97
Summary 99
Chapter 5: Custom Animaons 101
The animate method 102
Per-property easing 102
An alternave syntax for animate() 103
Animang an element's posion 103
Time for acon – creang an animated content viewer 104
Time for acon – inializing variables and prepping the widget 106
Time for acon – dening a post-animaon callback 107
Time for acon – adding event handlers for the UI elements 109
Skinning the widget 111
Time for acon – adding a new skin 111
Time for acon – creang the underlying page and basic styling 114
Time for acon – dening the full and small sizes of the images 115
Time for acon – creang the overlay images 116
Time for acon – creang the overlay wrappers 116
Time for acon – maintaining the overlay posions 119
Creang a jQuery animaon plugin 121
Time for acon – creang a test page and adding some styling 122
Creang the plugin 124
Time for acon – adding a license and dening congurable opons 124
Time for acon – adding our plugin method to the jQuery namespace 125
Time for acon – creang the UI 127
Time for acon – creang the transion overlay 129
Time for acon – dening the transions 130
Using the plugin 132
Summary 135
Chapter 6: Extended Animaons with jQuery UI 137
Obtaining and seng up jQuery UI 138
A new template le 139
The new eects added by jQuery UI 139
Using the eect API 140
The bounce eect 141
Conguraon opons 141
Time for acon – using the bounce eect 141
The highlight eect 143
Conguraon opons 143
www.it-ebooks.info
Table of Contents
[ iv ]
Time for acon – highlighng elements 143
The pulsate eect 145
Conguraon opons 145
Time for acon – making an element pulsate 145
The shake eect 147
Conguraon opons 147
Time for acon – shaking an element 147
The size eect 149
Conguraon opons 149
Time for acon – resizing elements 150
The transfer eect 152
Conguraon opons 152
Time for acon – transferring the outline of one element to another 152
Using eects with show and hide logic 155
The blind eect 155
Conguraon opons 156
Time for acon – using the blind eect 156
The clip eect 157
Conguraon opons 157
Time for acon – clipping an element in and out 158
The drop eect 159
Conguraon opons 160
Time for acon – using the eect 160
The explode eect 162
Conguraon opons 162
Time for acon – exploding an element 163
The fold eect 164
Conguraon opons 164
Time for acon – folding an element away 164
The pu eect 166
Conguraon opons 166
Time for acon – making an element disappear in a pu 166
The slide eect 168
Conguraon opons 168
Time for acon – sliding elements in and out of view 168
The scale eect 170
Conguraon opons 170
Time for acon – scaling an element 170
Easing funcons 173
Time for acon – adding easing to eects 174
Color animaons 174
Time for acon – animang between colors 174
Class transions 176
www.it-ebooks.info
Table of Contents
[ v ]
Time for acon – transioning between classes 176
Summary 178
Chapter 7: Full Page Animaons 179
Animated page scroll 179
Time for acon – creang the page that will scroll and its styling 180
Time for acon – animang the scroll 183
The illusion of depth with parallax 186
A lile help from the new cssHooks funconality 186
Time for acon – creang the stage and adding the styling 187
Time for acon – animang the background posion 188
Animated single-page navigaon 190
Time for acon – creang individual pages and adding the styles 190
Time for acon – adding the scroll navigaon 193
Stop-moon animaon 201
Imagery 201
Technique 201
Time for acon – adding the markup and styling 202
Time for acon – creang the frames and running the animaon 202
Summary 205
Chapter 8: Other Popular Animaons 207
Proximity animaons 207
Time for acon – creang and styling the page 208
Time for acon – prepping the page for sliding funconality 210
Time for acon – animang the scroller 213
Time for acon – adding the mouse events 214
Time for acon – adding keyboard events 215
Animated page headers 217
Time for acon – creang an animated header 218
Marquee text 219
Time for acon – creang and styling the underlying page 220
Time for acon – retrieving and processing the post list 222
Time for acon – animang the post links 227
Summary 229
Chapter 9: CSS3 Animaons 231
CSS3 2D transforms 231
Understanding the matrix 232
Translate 233
Scale 234
Skew 236
Rotaon 237
Working with transforms 238
www.it-ebooks.info
Table of Contents
[ vi ]
jQuery and transforms 238
Internet Explorer transforms 239
CSS3 3D transforms 241
Animated rotaon with jQuery and CSS3 242
Time for acon – animang an element's rotaon 242
Problems with IE 246
Animated skewing 247
Time for acon – creang the underlying markup 248
and basic styling 248
Time for acon – inializing the widget 250
Time for acon – animang an element's skew 254
Time for acon – skewing an element from le to right 259
Time for acon – wiring up the controls 262
Summary 263
Chapter 10: Canvas Animaons 265
The canvas API 266
The canvas element 266
Context methods 267
Nave shapes 267
Paths 268
Images and paerns 269
Text 270
Transformaon methods 271
Pixel manipulaon 271
Drawing to the canvas 272
Time for acon – drawing to the canvas 272
Canvas, IE, and the alternaves 277
API methods that simply do not work 277
Time for acon – making our code compable with IE 278
Animang the canvas 281
Time for acon – creang an animaon on the canvas 282
Time for acon – animang the white crosses 284
Time for acon – animang the red crosses 286
Creang a canvas game 290
Time for acon – creang the inial page 290
Time for acon – the inial script 292
Time for acon – adding the aliens to the page 293
Time for acon – moving the aliens 294
Time for acon – adding handlers to control the ship 297
Summary 301
www.it-ebooks.info
Table of Contents
[ vii ]
Pop Quiz Answers 303
Chapter 1 303
Basic animaon with jQuery 303
Chapter 2 303
Using fadeIn 303
Using fadeOut 303
Using fadeToggle() 304
Using fadeTo 304
Using show and hide 304
Chapter 3 304
Viewing the queue 304
Adding new items to the array 304
Keeping the queue running 305
Replacing the queue 305
Stopping an animaon 305
Chapter 4 305
Sliding elements down 305
Sliding elements up 305
Using slideToggle 306
Using easing 306
Fixing the icker 306
Chapter 5 306
Creang an animated content-viewer 306
Creang expanding images 306
Creang a plugin 307
Chapter 6 307
Using the eect API 307
Using show/hide logic 307
Easing, color, and class animaons 307
Chapter 7 307
Animang page scroll 307
Implemenng the parallax eect 308
Creang a single-page website 308
Implemenng stop-moon animaon with jQuery 308
Chapter 8 308
Implemenng proximity animaons 308
Creang a marquee scroller 308
Chapter 9 309
Implemenng CSS3 rotaon 309
Using the matrix 309
Chapter 10 309
www.it-ebooks.info
Drawing to the canvas 309
Supporng IE 309
Animang the canvas 310
Creang canvas-based games 310
Index 311
www.it-ebooks.info
Preface
jQuery is a cross-browser JavaScript library designed to simplify the client-side scripng of
HTML, and is the most popular JavaScript library in use today. Using the features oered by
jQuery, developers are able to create dynamic web pages. This book will act as a resource for
you to create animaon and advanced special eects in your web applicaons, by following
the easy-to-understand steps menoned in it.
jQuery 1.4 Animaon Techniques: Beginner's Guide will allow you to master animaon in
jQuery to produce slick and aracve interfaces that respond to your visitors' interacons.
You will learn everything you need to know about creang engaging and eecve web
page animaons using jQuery. The book uses many examples and explains how to create
animaons using an easy, step-by-step, beginner's guide approach.
This book provides various examples that gradually build up the reader's knowledge and
praccal experience in using the jQuery API to create stunning animaons. The book starts
o by explaining how animaons make your user interface interacve and aracve.
It explains the various methods used to make the element being animated appear or
disappear. It provides a set of steps to create simple animaons and show fading animaons.
You can later learn how to make complex animaons by chaining dierent eects
together as well as how to halt a currently running applicaon. You will nd out how
to slide your animaon elements and learn to create custom animaons that can be
complex and specialized.
You will nd out how to obtain and set up the jQuery UI—the ocial user interface library
for jQuery. This book will tell you how to animate a page's background image, and will teach
you how to make images scroll in a certain direcon and at a certain speed depending on the
movement of the mouse pointer.
www.it-ebooks.info
Preface
[ 2 ]
What this book covers
Chapter 1, Introducon covers the basics including downloading jQuery and seng up a
development area, a brief history of animaon on the Web, when and where not to use
animaon, how animaon can enhance an interface, and the animaon methods exposed
by jQuery. A basic example of animaon is also covered.
Chapter 2, Fading Animaons looks at the fading family of animaon methods including
fading elements in and out, fade toggling, triggering animaons with
show(), hide(),
and toggle(), and fading an element to a specic opacity.
Chapter 3, Managing Animaons covers the animaon queue and the methods jQuery
provides for managing it. We see how to clear the queue, how to add funcons to it, and
how to clear it. We see how to add a delay between queued items and how to prevent
animaons building up in the queue when they are not required.
Chapter 4, Sliding Animaons looks at jQuery's sliding animaon and covers how to slide
elements in an out of view and how to toggle the slide based on their current state. We also
look at how CSS posioning can aect animaons and how to avoid a common piall when
using these methods in a drop-down menu.
Chapter 5, Custom Animaons focuses on the
animate() method, which jQuery provides
for us as a means of creang custom animaons not already predened. This extremely
powerful method allows us to animate almost any CSS-style property to easily create
complex and aracve animaons.
Chapter 6, Extended Animaons with jQuery UI looks at the addional eects added by
jQuery UI, the ocial UI library built on top of jQuery. We look at each of the 14 new
eects as well as covering the easing funcons built into the library.
Chapter 7, Full Page Animaons looks at animaons that form the main focus of the page.
Techniques we cover include animang page scroll, creang a parallax eect, and creang
basic stop-moon animaons.
Chapter 8, Other Popular Animaons looks at some common types of animaons found on
the web including proximity animaons triggered by the mouse pointer, animated headers,
and a modern-day equivalent to the marquee element.
Chapter 9, CSS3 Animaons covers how we can use CSS3 to create aracve animaons
driven by the latest CSS transforms and how jQuery can be used to make the process easier,
including the latest cssHooks funconality.
Chapter 10, Canvas Animaons looks at the HTML5 canvas element and shows how it
can be used to create stunning animaons without the use of Flash or other proprietary
technologies. The book closes with an in-depth example teaching how to create an
interacve game using nothing but HTML and JavaScript.
www.it-ebooks.info
Preface
[ 3 ]
What you need for this book
To get the most out of this book you should have some knowledge of frontend development,
preferably including JavaScript. Experience with jQuery is also preferable, but is not essenal
as all techniques used in the book are discussed in full.
You should have a computer capable of running the latest browsers and preferably an Internet
connecon. A code eding development soware package will be of help, but again is not
essenal provided you have a text editor of some descripon.
Who this book is for
This book is wrien for web designers and frontend developers who already have good
knowledge of HTML and CSS, and some experience with jQuery. If you want to learn how to
animate the user interface of your web applicaons with jQuery, then this book is for you.
Conventions
In this book, you will nd several headings appearing frequently.
To give clear instrucons of how to complete a procedure or task, we use:
Time for action – heading
1. Acon 1
2. Acon 2
3. Acon 3
Instrucons oen need some extra explanaon so that they make sense, so they are
followed with:
What just happened?
This heading explains the working of tasks or instrucons that you have just completed.
You will also nd some other learning aids in the book, including:
Pop quiz – heading
These are short mulple choice quesons intended to help you test your own understanding.
www.it-ebooks.info
Preface
[ 4 ]
Have a go hero – heading
These set praccal challenges and give you ideas for experimenng with what you
have learned.
You will also nd a number of styles of text that disnguish between dierent kinds of
informaon. Here are some examples of these styles, and an explanaon of their meaning.
Code words in text are shown as follows: "The
fadeIn() and fadeOut() methods perform
the least complex animaons available via jQuery".
A block of code is set as follows:
$("#fader").fadeOut(function() {
console.log($(this).queue());
}).fadeIn().fadeOut().fadeIn();
When we wish to draw your aenon to a parcular part of a code block, the relevant lines
or items are set in bold:
subMenuParent.mouseenter(function() {
$(this).find("ul").toggle("fast");
});
New terms and important words are shown in bold. Words that you see on the screen, in
menus or dialog boxes for example, appear in the text like this: "In this case, we clear the
whole canvas, removing the space ship and any surviving aliens, and print the text GAME
OVER! to the center of the canvas".
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
www.it-ebooks.info