該效果的主要實現思路是給文字添加漸變的背景,然後對背景進行裁剪,按文字裁剪(目前只有webkit內核浏覽器支持該屬性),最後給背景添加動畫,即改變背景的位置,背景動畫效果如下(GIF錄制時有卡頓,代碼實現時不卡):
最終效果:
全部代碼如下:
<!DOCTYPE html> <html> <head> <style> p{ width:50%; margin:0 auto; line-height:50px; font-size:50px; text-align:center; -webkit-background-clip: text; /*按文字裁剪*/ -webkit-text-fill-color: transparent; /*文字的顏色使用背景色*/ background-color:#19385c; /*設置一個背景色*/ background-image: -webkit-linear-gradient(-45deg, rgba(0, 0, 0, 0.6) 30%, #aff0ff 50%, rgba(0, 0, 0, 0.6) 70%); /*設置漸變的背景,按對角線漸變*/ background-blend-mode: hard-light; /*設置背景為混合模式下的強光模式*/ background-size: 200%; -webkit-animation: shine 4s infinite; /*給背景添加動畫改變位置*/ } @-webkit-keyframes shine { from {background-position: 100%;} to {background-position: 0;} } </style> </head> <body><p>> Slide To Unlock</p></body> </html>
需要說明的是由於按文字裁剪目前只有 webkit 內核可用,所以該效果目前不兼容其他內核浏覽器。