Here is a method to do a distortion or glitch effect to text in CSS.
This is done through the use of CSS web kit animation and key frames.
The basic CSS for the distortion text:
.distort-text {
padding: 10px;
animation: distort 400ms 10;
}
.distort-text:hover {
animation: distort 400ms infinite;
}
@keyframes distort {
0% {
text-shadow: 5px 4px #f44336, -5px -6px #2196f3;
}
25% {
text-shadow: -5px -6px #f44336, 5px 4px #2196f3;
}
50% {
text-shadow: 5px -4px #f44336, -8px 4px #2196f3;
}
75% {
text-shadow: -8px -4px #f44336, -5px -4px #2196f3;
}
100% {
text-shadow: -5px 0 #f44336, 5px -4px #2196f3;
}
}.distort-text {
padding: 10px;
animation: distort 400ms 10;
}Implies that once the page is loaded the distort @keyframes will run for 10 times at a speed cycle of 4 seconds (400ms).
.distort-text:hover {
animation: distort 400ms infinite;
}Makes the distort @keyframes run infinitely and at a speed of 4 seconds when the element (text) is hovered.
In the distort @keyframes we have it split into stages (0%, 25%, 50%, 75% and 100%) at each one of these stages we have defined CSS properties for when distort gets called.
text-shadow: 5px 4px #f44336, -5px -6px #2196f3;
Adds a text shadow with the position of the horizontal shadow at 5px and the vertical shadow at 4px. #f44336 is the color for this text ‘shadow’. Following the comma is another text shadow at -5px horizontal and -6px vertical with a color of #2196f3.
In essence our distort @keyframes just consists of many slightly different text shadow effects, which gets called and cycled through with the animation element.