A slow network isn’t the worst thing in the world - it put me in front of the Twitter spinning loader animation for long enough for me to think: “I could create something like this”. And that’s what this post is about, creating a simple CSS spinning loader animation similar to Twitter’s.
Slotomania games are available across all devices Css Animation Roulette from PC to Tablet and Cell phones, a fantastic opportunity for Css Animation Roulette people who want to play the latest slots games on the go. Slotomania offers a wide range of free slots Css Animation Roulette replicating the Vegas style slot machines special atmosphere. I suggested a slot machine-effect, and it came out really nicely, a widget with a very high 'coolness to code complexity' ratio. Here's another version of what I quickly came up with, click to spin! The final product for work was a bit different, a single little rotating slot with graphical icons and more polish, (including a nice fade in.
Although Twitter’s is made from an SVG, it can also be created out of pure CSS using a simple CSS keyframe animation, with nothing but a single HTML element. As you’ll see, we’ll make heavy use of CSS variables to make our resulting CSS more flexible and extensible.
Let’s just get to it.
Note that the example in this post is not meant to be 100% identical to Twitter's loading animation.
The Idea
My inital thought was to:
- Create a circle
Rotate
the circle indefinitely from0
to360deg
, and- Find a way to indicate that the circle is being rotated
In CSS pseudocode (if you will), this roughly means:
- Draw a square with a border radius of at least 50%
- Animate a circle continually from
0
to360 degrees
- Indicate that the circle is indeed rotating
The third point seemed fuzzy. But let's keep going.
First, some initial setup
What’s going on with the initial setup?
On the :root
pseudo-class, we defined some CSS variables
:
--s-loader-wrapper-bg-color
: the background color for the loader’s parent container--s-loader-width
: the loader width--s-loader-height
: the loader height (notice how we can assign a variable to another variable)--s-loader-border-color-trans
: an opaque version of the loader border color--s-loader-border-color-full
: a non-opaque version of the loader border color (this will do the trick of indicating the loader rotation)
On the body
element, we:
- Removed the browser default margin on the
body
element - Applied a background color (
rgb(21, 22, 43)
is a fallback for--s-loader-wrapper-bg-color
) - We set the width and height
- The
display
,align-items
andjustify-content
centers the children of thebody
(the spinning loader - in this case)
You can read on viewport units and centering with flex or grid
The Spinning Loader Element
What’s going on here with the spinning loader?
We set an equal width
and height
on the spinning loader so we can get a perfect square.
Then we:
- Create a
border
for the 4 sides with sufficient opacity. - Reduce the
opacity
on all border sides except for one of them (the left one in this case). That’ll serve as a spinning-indicator. The different color on only one of the border sides is the secret sauce here. - Create a perfect circle by applying a
border-radius
of 50% to the square. - Make the
background
of the div transparent. animation-name
- a reference to the animation name (we’ll define that next).animation-iteration-count
: how many cycles should the animation go?animation-duration
: how long should each cycle take?animation-timing-function
: this defines the speed of an animation over time. Here a timing function oflinear
works for our needs because the speed will be constant.
Slot Machine Scrolling Animation Css Creator
Next we define the actual animation using the @keyframes at-rule - applying a rotation transformation from 0 to 360 degrees:
We rotate
the loader infinitelyfrom0deg
to360deg
. You can omit the deg in 0deg. Pretty much any unit in CSS can be omitted if its value is 0. Also, using the from and to keywords is another way of writing 0%
and 100%
.
And there goes our loader animation:
I’ve tweaked the version that’s displayed on this page a little bit, and distilled it down to the essential parts:
The Full Code at a Glance
First, the HTML markup. As promised, only one div
😉:
And next comes the CSS styling:
👍 And, there you have it! There are many ways of creating different kinds of loaders. This is just one of them. Once you start to break down the different parts that make up a loader, you can create them fairly easily. Of course, the only limit is your imagination 🌈. So there, I hope your spinner keeps on rotating!
hot css picks
Intro to CSS Grid
Variable Fonts
Cropping Images with object-fit
position: sticky
Gradient Borders
Centering Using Flexbox
latest css posts
CSS System Font Stack Reference
Styling Scrollbars with CSS: The Modern Way to Style Scrollbars
Using the CSS line-height Property to Improve Readability
How to Use the CSS :root Pseudo-Class Selector
all css posts
This paper describes the running effect of the slot machine implemented by jQuery. Share for your reference, as follows:
Running effect of slot machine
Note that you need to refer to the jQuery library yourself
UseOnline HTML/CSS/JavaScript Code Running ToolHttp://tools.jb51.net/code/HtmlJsRun test run the above code, you can get the following results:
Readers who are interested in jQuery-related content can see the topics of this site: Summary of JQuery Operating DOM Node Method, Summary of jQuery Extension Skills, Summary of jQuery Common Plug-ins and Usages, Summary of jQuery Table Operating Skills, Summary of Ajax Usage in jQuery, Summary of Common Classic Special Effects of jQuery, Summary of jQuery Animation and Special Utilities. And “Summary of jQuery selector usage”
I hope this article will be helpful to everyone’s jQuery program design.