Learn Development at Frontend Masters. As Sarah mentioned in her previous post about page transition using Vue. While mobile applications are evolving, more and more attention is given to the animation experience, while the web pretty much stays the same. Why is that?
All of that helps to improve the experience over time. Overall, it seems like mobile app developers somehow seem to know or care more about user experience. If we take a look at how mobile apps are designed today, there is very often some sort of animated transition between states. Even ready-to-use native components have some kind of simple animation between states.
Developers and designers realized that this little animation helps a user grasp what is happening in the app. It makes the navigation through the app easier and tells the user where they are going within the app. On the web, most of the effort used to improve the experience is in structure, visual design, or even the performance of the site. A boring remnant of the time when the web was simply used to navigate through a bunch of text pages later upgraded with some sliding text.
There are some very fancy websites that are filled with animation or incredible WebGL hieroglyphs in the background. Unfortunately, they are often hard to navigate and your laptop battery is drained in about 15 minutes.
But they are certainly nice to look at. Those sites are full animation, but most of it is used to impress you, and not to help you navigate around, or make the experience faster, or make things more accessible for you to browse the site.
How to create a simple CSS loading spinner & make it accessible
All of this raises a big question. We have all the technology to do this page transitions stuff on the web. Often, a company chooses technologies that are common for all of their projects. Unfortunately, it makes sense. You cannot just throw it away because you want your user to have a bit more fun browsing your site. There is another possible reason. Maybe you want to build on WordPress because you want to take advantage of all those open source goodies people prepared for you over the years.One of the issues that every web developer has to keep in mind is the page loading time.
Granted, with the higher internet speeds that we have nowadays, most of the pages and apps open rather quickly. However, there is always some space left for improvement. In some cases, it is unavoidable to let the users wait for a brief moment for all the data and pages to load. In moments like that, you need something to get the users attention and keep them on the site long enough for all the content to load.
One way to do that is by adding an eye-catching loading animation or loading gif to the site to keep the users entertained while they are waiting for the rest of the site to load. This is a great example of a loading screen gif that catches your attention for long enough for the rest of the content to load. And a moment is really all it takes…. Since the website behind this loading animation is a brewery, this loader gif makes all the sense in the world. It depicts the production process of the brewery products which will not only reduce the frustration of the users that have to wait for the page to load, but it will actually spark their interest in a creative way.
The beauty of this loading icon lies in its simplicity.SVG Animation With Text Tutorial - HTML CSS
It is intuitive and it will keep the users occupied rather than letting them leave the page in frustration. This loader animated gif is great for two reasons. The best things are often the simplest ones and the same rule applies to the CSS loading animation. While this one might seem boring to some, it is actually perfect in its simplicity. The nesting pattern is always a good choice when it comes to loading animated gifs. Add the 3D effect into the mix and you have a perfect loading animation that is worth creating!
When designing your loading animation, always think about the target audience and what is it that they would like to see. This website did a great job at that by combining several things associated with Christmas and creating a preloader gif perfect for children-targeted online courses.
Triggering an emotional response with your users is always a good idea if you know how to do it right. Add the rotating effects and the gradient colors into the mix and you will create some lovely loading screens.
CSS Loader Examples From CodePen
This loading bar gif not only serves its purpose, but it is also really cool and fashionable. The worst way of creating a loading image gif is by creating something that makes no sense and tells no story at all.
The preloader images that we see here are ideal for that. This loading animation with the rapidly changing numbers and quickly rotating color bars lets the user know that the site is being loaded as fast as possible and that the problems are being processes in the background right then and there.
The design is clean and its beauty lies in its simplicity. It is a great progress bar gif that would fit right into any website. This light loader in the shape of a spinner is a great loading animation who like simple designs with a little twist. This loading circle gif created by Glen Cheney is a beautiful and complex feature that uses. That means that it can be run in pure CSS3 with many options including different colors, sizes, and speed. Do you remember the old school Windows screensaver?
The blue thing that spins around inside the border is specified with the border-top property. The size of the loader is specified with the width and height properties. At last, we add an animation that makes the blue thing spin forever with a 2 second animation speed. Note: You should also include a -webkit- prefix for browsers that do not support animation and transform properties.
Click on the example to see how. An example of how to place the loader in the middle of the page and show "page content" when loading is complete:. If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:.
I spent a few hours while on CodePen, and after I picked my jaw up from the floor, I put together a collection of my favorite CodePen. IO demos. Draw Worm is an eye-catching, canvas-based animation that creates branches; better yet, the animation follows the mouse, creating more branches.
Even color is that you can see grey lines stay in the background, representing vapor trails. This single-element demo composes the Google Chrome logo using :before and :afteras well as a number of CSS gradients. Hover over the logo and it shrinks and rotates too! What's more impressive is that it's not just a spinning set of elements -- the elements warp into different shape patterns too.
Linjer starts out as a pulsating set of colored lines, until you click around the lines! The animations intensify near the clicks and the rippling becomes more meaningful. You'd be surprised at how little CSS is used to accomplish this task. Social Switchbook is probably the most practical of the demos provided in this post. The effect provides a keyring-style set of elements which animate into display as you hover over each.
The sketch.Learn Development at Frontend Masters.
If you have certain pages on your website that take some time to load, you may want to consider a page loader. A page loader is any kind of animation that visually communicates to a visitor that the page is loading and to just sit tight for a few seconds. Without a page loader, a visitor might think your site is being unresponsive and just click away in frustration. A page loader also provides a small distraction which can actually makes the wait seem much shorter.
If your page loading delay is caused by something like a database read, it is likely that the visitor remains on the current page until the page they are trying to go to is loaded. This is different than a page loading delay like large images, where the visitor would get to the page before the delays. It is the former scenario where a CSS page loader can work very well. Here is how you do it:. This will be visible to the visitor until the slow loading page is loaded, then they will be moved there.
Update : There is a new post post including an example here. Frontend Masters is the best place to get it. And you will no longer need to declare an onclick event on pages you want to show your loader, it will do it automatically.
How does putting the display toggle in the header help? I agree with your idea of showing only a loader on slow pages, but how could you know which are slow? It depends of too much factor to predict it I think. The solution I propose is simple and works with all pages, we could also imagine to set a sort of timer and if the page is not loaded into this time, we show the loader. Yeah, you are right that if you are unable to tell which of your pages are loading slowly, your way is the way to go.
I actually wrote this post because of a site I was working on. It was just one particular page that has a big database call on it that was causing the slow page load and this solution worked perfectly for it.
Permalink to comment September 6, Permalink to comment September 7, I think I am just a bit confused… How does putting the display toggle in the header help? Permalink to comment September 9, Hello again Chris and thank you for the correction of my precedent reply.Since CSS animations are now so well supported using an animated.
I am presuming here you have used CSS animations before for this tutorial. The spinner markup is just a single div. Our spinner is going to be a pseudo element, ::before you could use ::after as well of our div.
I personally find the animation syntax tricky to remember so I used MDN as my go-to reference guide. Now we have a nice simple CSS loading spinner!
When this happens it will be announced to screenreaders immediately. We will check if the class -loaded has been added to the loading spinner. This way we can visually fade out the spinner with the same class. It is that simple! Now you have a flexible SCSS mixin to create an animated loading spinner. Please note in the Codepen demo I have added a couple of things. Thanks for reading.
Massive thanks to the dev guru Jon Pearse for showing me this technique. Sign in. Stuart Nelson Follow. Senior dev at readyagency, Bath. Bursts of code to power through your day. Web Development articles, tutorials, and news.
See responses 4. More From Medium. More from codeburst. Changhui Xu in codeburst. CodeDraken in codeburst. Ashan Fernando in codeburst. Discover Medium. Make Medium yours. Become a member.
About Help Legal.The following is not that type of loader. Each function returns a Promise and the onload or onerror event of the resource's tag triggers resolve or reject for the promise. I have to stress that this is meant to be a very, very simple "loader"; please save the comments about how it doesn't have bells and whistles that other loaders have. Do yourself a favor and check out these awesome APIs!
With Firefox OS, asm. As much as developers now loathe Flash, we're still playing a bit of catch up to natively duplicate the animation capabilities that Adobe's old technology provided us. Another technology available The Firefox Marketplace is an incredibly attractive, easy to use hub that promises to make finding and promoting awesome HTML5-powered web applications easy and convenient. While I don't work directly on the Marketplace, I am privy to the codebase and so Frequently asked questions can be super boring, right?
They don't have to be! Great article! Would love to see this on a CDN somewhere. Have a declarative set of script dependencies. Look at require. Having only this bit makes it scalable. A large number of mentions for this issue you can find on the stackoverflow site.
There is no universal solution that can inform us that stylesheet is realy loaded, BUT we can be informed when HTTP request is completed and this is better then waiting of the event that never will be dispatched. It can be more powerful, flexible and simple. Trust me. Would this be a good strategy, considering this loader uses Promise, which is one of the functions that the Polyfill is enabling for IE? Wonderful article! I actually wrote a little script loader 5.
By David Walsh July 15, By David Walsh February 10, Discussion Rick Carlino. David Walsh. Kiril Reznik. George M Jempty. Continue this conversation via email Get only replies to your comment, the best of the rest, as well as a daily recap of all comments on this post.
Use Code Editor.