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.