Stylish Button Hover Effect With jQuery And CSS3
File Size: | 5.17 KB |
---|---|
Views Total: | 3831 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A stylish button hover effect that animates the button text character by character on hover by using jQuery and CSS3 transitions & transforms.
See It In Action:
See the Pen Button Hover Effects by Aaron Iker (@aaroniker) on CodePen.
How to use it:
1. Create a button on the page.
<a href="" class="button"> Button Text Here </a>
2. The necessary CSS styles for the button & hover effect.
.button { --background: #275efe; --text: #fff; --font-size: 16px; --duration: .44s; --move-hover: -4px; --shadow: 0 2px 8px -1px rgba(39, 94, 254, 0.32); --shadow-hover: 0 4px 20px -2px rgba(39, 94, 254, 0.5); --font-shadow: var(--font-size); padding: 16px 32px; font-family: 'Roboto'; font-weight: 500; line-height: var(--font-size); border-radius: 24px; display: block; outline: none; text-decoration: none; font-size: var(--font-size); letter-spacing: .5px; background: var(--background); color: var(--text); box-shadow: var(--shadow); -webkit-transform: translateY(var(--y)); transform: translateY(var(--y)); transition: box-shadow var(--duration) ease, -webkit-transform var(--duration) ease; transition: transform var(--duration) ease, box-shadow var(--duration) ease; transition: transform var(--duration) ease, box-shadow var(--duration) ease, -webkit-transform var(--duration) ease; } .button span { display: flex; overflow: hidden; text-shadow: 0 var(--font-shadow) 0 var(--text); } .button span i { display: block; -webkit-backface-visibility: hidden; backface-visibility: hidden; font-style: normal; transition: -webkit-transform var(--duration) ease; transition: transform var(--duration) ease; transition: transform var(--duration) ease, -webkit-transform var(--duration) ease; -webkit-transform: translateY(var(--m)); transform: translateY(var(--m)); } .button span i:nth-child(1) { transition-delay: 0.05s; } .button span i:nth-child(2) { transition-delay: 0.1s; } .button span i:nth-child(3) { transition-delay: 0.15s; } .button span i:nth-child(4) { transition-delay: 0.2s; } .button span i:nth-child(5) { transition-delay: 0.25s; } .button span i:nth-child(6) { transition-delay: 0.3s; } .button span i:nth-child(7) { transition-delay: 0.35s; } .button span i:nth-child(8) { transition-delay: 0.4s; } .button span i:nth-child(9) { transition-delay: 0.45s; } .button span i:nth-child(10) { transition-delay: 0.5s; } .button span i:nth-child(11) { transition-delay: 0.55s; } .button:hover { --y: var(--move-hover); --shadow: var(--shadow-hover); } .button:hover i { --m: calc(var(--font-size) * -1); } .button.reverse { --font-shadow: calc(var(--font-size) * -1); } .button.reverse:hover i { --m: calc(var(--font-size)); }
3. Load the necessary jQuery JavaScript library in the document.
<script src="/path/to/jquery.min.js"></script>
4. The jQuery script to enable the button hover effect.
$('.button').html((i, html) => { return '<span><i>' + $.trim(html).split('').join('</i><i>') + '</i></span>'; });
This awesome jQuery plugin is developed by aaroniker. For more Advanced Usages, please check the demo page or visit the official website.