如何利用JavaScript實現(xiàn)一個文字擦除效果
前言
動畫實際上就是一個視覺欺騙功能,一個前端如果不會視覺欺騙,那么針對很多效果將會手無足措,實際上學習動畫的過程中,也能更好理解視覺欺騙,實際開發(fā)一些場景也會有更多實現(xiàn)方案
這里的擦除效果,就是利用視覺欺詐實現(xiàn)一個文字擦除效果(前面寫到的進度條也有視覺欺騙在里面)
核心原理,就是在文本上方放置同樣的一個文本內容,設置顏色將其蓋住,通過css屬性動畫逐步放開遮擋區(qū)間,這樣看起來就像是文本逐漸展示了(實現(xiàn)是不是和看起來效果有點不太一樣,這就是視覺欺騙了)
實現(xiàn)
import "./App.css";
//基礎文本
const text = `
“再也不能罵人了!”近日,一條以“罵人也違法了
最高可判三年”為關鍵詞的話題登上熱搜,迅速引發(fā)公眾熱議。這背后,是自2026年1月1日起正式施行的新修訂《治安管理處罰法》,言語威脅、辱罵他人可能構成違法!公然辱罵他人或捏造事實,造成重傷或死亡的還涉嫌犯罪。請謹言慎行,莫因“口無遮攔”承擔法律責任。
法律依據 《中華人民共和國治安管理處罰法》(2026),第五十條規(guī)定:
有下列行為之一的,處五日以下拘留或者一千元以下罰款;情節(jié)較重的,處五日以上十日以下拘留,可以并處一千元以下罰款:
(一)寫恐嚇信或者以其他方法威脅他人人身安全的;
(二)公然侮辱他人或者捏造事實誹謗他人的;
(三)捏造事實誣告陷害他人,企圖使他人受到刑事追究或受到治安管理處罰的;
(四)對證人及其近親屬進行威脅、侮辱、毆打或者打擊報復的;
(五)多次發(fā)送淫穢、侮辱、恐嚇等信息或者采取滋擾、糾纏、跟蹤等方法,干擾他人正常生活的;
(六)偷窺、偷拍、竊聽、散布他人隱私的。
有前款第五項規(guī)定的滋擾、糾纏、跟蹤行為的,除依照前款規(guī)定給予處罰外,經公安機關負責人批準,可以責令其一定期限內禁止接觸被侵害人。對違反禁止接觸規(guī)定的,處五日以上十日以下拘留,可以并處一千元以下罰款。
《中華人民共和國刑法》第二百四十六條:
以暴力或者其他方法公然侮辱他人或者捏造事實誹謗他人,情節(jié)嚴重的,處三年以下有期徒刑、拘役、管制或者剝奪政治權利。
`;
function App() {
return (
//使用兩個一摸一樣的文本效果,這樣更好蓋住
//為了能重合使用絕對定位來處理
<p className="App">
<p className="box">
{text}
</p>
<p className="box">
//不適用匿名盒子,是為了更好操作該行盒
<span className="earser">{text}</span>
</p>
</p>
);
}
css實現(xiàn),除了使用行盒子實現(xiàn)背景的逐行變化,這里借助css自定義屬性,來實現(xiàn)動畫(畢竟動畫只能應用css內置屬性,不能直接應用變量)
css實現(xiàn)
ps:當然使用 background-position屬性,就不用自定義屬性了,容我裝一下哈??
.App {
margin: 0;
color: black;
position: relative;
display: block;
color: #000;
}
.box {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
@property --per {
syntax: '<percentage>';
inherits: false;
initial-value: 5%;
}
//使用行盒子設置背景,才能達到我們想要的效果
.earser {
--per: 5%;
color: transparent;
background: linear-gradient(to right, transparent var(--per), #fff calc(var(--per) + 100px));
animation
: earser 5s linear forwards;
}
//關鍵幀動畫
@keyframes earser {
to {
--per: 100%;
}
}
這是一個簡易的部分擦除效果(gif懶得生成)

最后
思考一下,如果文本區(qū)域存在一個背景圖的話,那么這種遮蓋方式可能就不行了,這種情況怎么實現(xiàn)文字擦除效果么,不妨思考一下
相關文章
CheckBox多選取值及判斷CheckBox選中是否為空的實例
下面小編就為大家?guī)硪黄狢heckBox多選取值及判斷CheckBox選中是否為空的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Javascript下的urlencode編碼解碼方法附decodeURIComponent
而本文,就大概說說如何在js中通過系統(tǒng)自帶的函數(shù)去解決這個問題。2010-04-04
如何讓easyui gridview 寬度自適應窗口改變及fitColumns應用
在使用Easyui GridView時,如果要Gridview的寬度和窗口的寬度相同,只需要設置fitColumns: true即可,感興趣的你不要走開啊,接下來為您詳細介紹2013-01-01
JS簡單實現(xiàn)父子窗口傳值功能示例【未使用iframe框架】
這篇文章主要介紹了JS簡單實現(xiàn)父子窗口傳值功能,結合具體實例形式分析了javascript實現(xiàn)不使用iframe框架進行窗口之間簡單傳值的相關操作技巧,需要的朋友可以參考下2017-09-09

