Thursday, February 28, 2019

6 Best Weather WordPress Widgets & Plugins

How to Make Your Resume the Perfect Length (+To the Point)

Choose the Best WordPress Event Calendar Plugins

20 Best Shipping & Pricing WooCommerce Plugins

How to Make a Time Magazine Cover Template

What Is a Business Model? +15 Top Types to Use (With Examples) in 2019

25 Best (Free) Business Proposal Templates (Download Word & InDesign Formats)

How to Create a Sketch Effect Action in Adobe Photoshop

15+ Best Agency WordPress Themes: For Creative Site Designs in 2019

Wednesday, February 27, 2019

Twenty Nineteen Teardown: Using the New WordPress Default Theme

15 Best jQuery Image Galleries

International Women’s Day 2019: How to Create Your Own Photo Campaign

How to Create a Magazine Cover Template in InDesign

How to Make Winning Pitch Decks (With PowerPoint Templates)

How to Highlight Text in Microsoft PowerPoint

30+ Best PowerPoint Slide Templates (Free + Premium PPT Designs)

21 Creative Logo Design Ideas (Cool + Modern Inspiration for 2019)

New Course: How to Make Business Cards in Adobe Photoshop

How to Create a Cool 3D Comic Text Effect in Photoshop

Monday, February 25, 2019

How to Create an Isometric Text Effect in Adobe Illustrator

Look at This Portrait of Frederick Douglass and His Grandson from 1894

The Best New Presentation Templates of 2019 (PowerPoint & More)

20 Cool Gaming Logos: Team + Video Games (Online Design Creator)

How to Make an InDesign Book Template (Cover & Layout)

How to Make Watercolor Effects in Photoshop Quickly With Actions

Which of Figma’s Pricing Tiers is Right for You?

Why Designers Need to Get Political

Wednesday, February 20, 2019

How to Create a Business Directory Website With WordPress

How to Create a Dramatic Mermaid Photo Manipulation in Photoshop

How to Make a Historical Then-and-Now Picture and Animated Gif

How to Make Flowcharts & Gantt Charts in Keynote With Templates

How to Make a Graffiti Text Effect With Photoshop Layer Styles

25 Cool PowerPoint Templates (To Make Presentations in 2019)

How to Make an Infographic With Google Slides Using a Template

New Course: Create a Themeable Site Design in Figma

Tuesday, February 19, 2019

Best WPBakery (Visual Composer) Add-Ons and Templates on Envato Elements

Best WordPress Social Media Plugins of 2019

How and Why to Have Consistent Branding in Your Videos (and Beyond)

24 Best Gaming YouTube Banners Made With a YouTube Banner Maker

20 Animated PowerPoint Templates With Amazing Interactive Slides

How to Make a Blog Icon

15+ Best Spa & Beauty Salon WordPress Themes for 2019 Websites

20 Best Modern Logos With Simple Designs (Creative Examples for 2019)

How to Create an eBook in Adobe InDesign

Friday, February 15, 2019

How to Add the Stellar Video Player to Your WordPress Site

20 Best PHP Email Forms

How to Make a Book Cover

How to Improve Handheld Shots (Essential Video Skills)

How to Effectively List Professional Skills on Your Resume

20 Google Slides Templates for Teachers, Educators, and Students For 2019

How to Make a Quick Fundraiser Promo Video Using Placeit

Add Drama, Depth and Emotion to Movies With Royalty-Free Music Tracks

How to Create a 3D Jewel Text Effect Action in Photoshop

Wednesday, February 13, 2019

How to Make an Animated Beating Heart with SVG

HDR Image Based Lighting in Blender in 60 Seconds

22 Best Photoshop Dispersion Effects to Disintegrate Photos in Style

How to Create a Three-Dimensional Lead Sound in Ableton 10

How to Quickly Make a Timeline in Keynote With Templates

35+ Best InDesign Resume Templates (Free + Pro Downloads)

Make a Trendy Double Exposure Effect in Adobe Photoshop

How to Make a Photoshop Action to Create a Portrait Photo Effect

How to Make a Good-Looking Tabletop (Still Life) Photograph

Tuesday, February 12, 2019

Turn Your Static SVG Drawings Into Interactive Widgets and Infographics With Vue.js

MS Mae Jemison in Spacelab-Japan: a Work Portrait

20+ Best Free Infographic PowerPoint Templates (for Data Rich Presentations)

How to Create a Luxury Gold Text Effect Action in Photoshop

20 Best WordPress Resume Themes: For Your Personal Website

Discover 15 Essential PowerPoint Tips in Our New Course

7 Simple Project Templates for Premiere Pro That Any Editor Can Use

27 Best New Event Flyers for 2019

Monday, February 11, 2019

Best WordPress Newsletters Plugins of 2019

How to Make a Sticky Menu in WordPress

When to Use (and Not Use) a Mega Menu for Navigation

How to Create a WordPress Testimonial Slider

How to Create a School Newsletter Template in InDesign

Animations to Take Your Basic HTML Template to the Next Level

Animations to Take Your Basic HTML Template to the Next Level

Animations can lift your website presentation to the next level. The right animation will have a positive impact on your site’s UX, reinforcing each interaction and creating a memorable experience. On the other hand, poorly chosen animation can ruin the experience, confuse users, and potentially dampen performance too.

In this article I will share with you some practical animation examples and techniques to make your basic HTML web page shine like a star.

Categorizing Animations

To make it easier to work with animation, I first like to classify and organize the different facets. Each animation will have five parameters, with a range of potential values:

  1. Type: single, group, related
  2. Sequence: sequential, random, simultaneous
  3. Event: load, scroll, click, hover, resize, etc.
  4. Size: small, medium, large
  5. Repeat: no-repeat, repeat

Note: this is not a W3C standard, this is my personal system to keep things clear.

Keeping these parameters in mind will help us make better animations. We’ll walk through each of these five things one by one. After that I will show you how to animate anything on the web using jQuery in combination with animate.css.

1. Type

There are situations when you’ll need to animate one single thing.

Then there’ll be times when you’ll need to animate grouped elements–siblings–for example: icons, images in a gallery, columns in a single row etc.

Or you might need to animate related elements; ones which are related to one another without being direct siblings.

 2. Sequence

The sequence of your animations can be controlled by animation delay. The delay might time things so that your animations happen sequentially. You might want things to happen randomly, or perhaps you want two or more elements to animate simultaneously. 

3. Event

Animation can take place on any known event in the web world: on page scroll, page load, click, hover, resize and so on. The event type doesn’t matter, as long as each animation is planned and executed on the correct one. In the demo we’ll walk through in a moment, we’ll be using page scroll, triggering animations on elements when they enter the viewport.

4. Size

Size is a relative term. The “size” of an animation can be interpreted as being related to its duration, its physical dimensions, or the value of its movement. The speed at which you animate a small element will likely be different from the speed at which you animate a larger element. It’s all down to interpretation, but “size” is important to consider for the end result.  

5. Repeat

When planning animation you should also plan the animation cycle; how many times it should be repeated per event.

Adding Animation to a Basic HTML Page

We’re going to apply a range of animations to various elements on a (long) page. We’ll write some jQuery to calculate when an element enters the viewport, then we’ll use that code to add a class of animated to the element or elements in question. This will trigger the animate.css library, executing whichever animation we want.

You can download the source files from the repo, alter any values you wish, and use in your own basic HTML templates. Or, you might prefer to fork the pen. Whatever your preference, below is an explanation of what’s happening.

What is Happening?

Let’s begin by looking at the actual demo, so you know what you’re working towards:

So, to start with we’ll need four jQuery functions which we’ll put in the controller.js file, or in the JS pane if you’re using CodePen. Let’s take closer look at each one.

isInViewport(h);

This function detects if an element is in the window’s viewport. It accepts one parameter (0-1) that tells the function the minimum part of the element that should be in viewport. By default this is 40% of the element (0.4). Here’s how the whole thing looks:

randomDelay

This next function is to set a random animation delay to a given set of elements. It’s used for grouped animations and accepts three parameters:

  1. children: the selector of elements set
  2. maxDelay: maximum animation delay
  3. minDelay: minimum animation delay

Here’s what it looks like:

sequentialDelay

This function is very similar to the previous one, except it is used to add sequential delay to a given set of elements.

It takes two parameters:

  1. children: the selector of elements set
  2. delayGap: minimum constant value of delay between elements in the set.

Here it is:

animateIfInViewport

This last function is quite meaty. It adds the animated class to the targeted element or group of elements and sends the animation data.

Apply Functions

In this example I’ve used two events for animations: page load and page scroll. Scroll down beyond the four initial functions and you will see them in action, nested in an “immediately invoked” (function($){...})(jquery) block. For example:

This says: for each .section-title, add the animated class when it enters the viewport.

If you take a look at the markup (in the index.html file) you’ll see that each element we want to animate has a data attribute attached to it. In the case of the section titles, you’ll see data-animation="fadeInRight".  This corresponds to the fadeInRight animation set up in animate.css, all done with CSS of course.

So when the section title scrolls into view, the animated class is applied to it and the fadeInRight animation is executed.

Here’s another example:

This looks for the element #row-bounceIn, then when it enters the viewport it takes the children (.col in this case) and adds the animated class. It also applies a random delay to the animation, somewhere between 200 and 500 milliseconds. 

Check the markup and you’ll see those .col elements have a data-animation="bounceIn" attached to them. They therefore (see if you can guess) bounce in according to the rules in animation.css.

Tip: Modify Animate.css to Suit Your Needs

You can modify the animation rules in the animate.css framework, and I highly recommend to do so. Think of animate.css as being your starting point that needs to be polished. For example I always like to change the timing function and reduce the translate amount in the CSS animation rules.

Here’s everything together. Scroll down and see everything animate as it enters the viewport.

Conclusion

When you put all these things together you can build amazing HTML templates with eye-catching animations.

You are free to use any file and code snippets from these demos in your projects without restriction. You are also free to modify anything in the given example files. And you are welcome to make suggestions and recommendations in the comments section below. Thanks for reading!

  • Animation
    Get Started With Web Animation
    Ian Yates
  • Animation
    Adding Appeal to Your Animations on the Web
    Donovan Hutchinson
  • Chrome DevTools
    How to Use the Animation Inspector in Chrome DevTools
    Kezz Bracey
  • Accessibility
    A Guide to Creating Accessible Animations
    Anna Monus
  • CSS Animation
    15 Inspiring Examples of CSS Animation on CodePen
    Donovan Hutchinson

20 Successful Companies Founded or Owned by Black Entrepreneurs

How to Create a Simple App Promo With Placeit (Video Maker)

How to Create a Vintage Photo Effect in a Sergey Prokudin-Gorsky Style

New Course: Customize a Template With VisBug

How to Put Your Face on a Glamorous Magazine Cover