自己使用react寫一個彈框組件(1)

最近在自己做一個曉得websocket項目侥祭,首頁需要一個登錄的頁面蓖宦,這個登錄頁面是一個彈框齐婴。以前使用彈框總是用現(xiàn)成的組件,比如antd的ui庫里邊的Modal稠茂, 這種使用起來也非常的方便柠偶,但是,今天想自己實現(xiàn)一個彈框組件睬关。

難點

要寫一個彈框诱担,有以下難點

  • 蒙層, 彈框顯示的時候需要將后面的dom元素隱藏电爹。
  • 彈框內(nèi)容dom化蔫仙, 作為一個組件,靈活是必須的丐箩,首先需要將內(nèi)容可定制
  • 動畫摇邦, 彈框的入場和離場等動效恤煞。
  • 組件間的通信以及解耦, 確認(rèn)和取消的回調(diào)施籍,以及在dom分層上實現(xiàn)與父組件隔離

1.動畫

????我覺得動畫是最難的居扒,首先react組件不像之前對于Jquery式的過程式開發(fā),如果是jquery丑慎,通過id拿到dom節(jié)點實例喜喂,之后通過修改這個節(jié)點的style和class,就能達(dá)到效果竿裂。同樣的玉吁,react也可以這樣開發(fā),通過refs去拿實例節(jié)點腻异。通過修改class去達(dá)到實現(xiàn)動畫的目的诈茧,這兩種開發(fā)方式是都可行的。
????但是捂掰,react是狀態(tài)態(tài)是開發(fā),聽前輩們說曾沈,這種開發(fā)框架的本意是通過修改state的狀態(tài)來達(dá)到控制頁面的dom元素这嚣。如果使用refs去拿實例節(jié)點去顯式的去修改,那還不如用jquery方便好寫塞俱。
???? 那么我們可以將classname作為一個state姐帚,使用定時器,延時控制classname的改變障涯。

2. 動畫的使用

https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions

transform

CSS transform屬性允許你旋轉(zhuǎn)罐旗,縮放,傾斜或平移給定元素唯蝶。這是通過修改CSS視覺格式化模型的坐標(biāo)空間來實現(xiàn)的九秀。

這里常用的幾個屬性就是: scale, rotate粘我, translate鼓蜒, 分別對應(yīng)縮放, 旋轉(zhuǎn)和平移征字,后綴加上x或者y就是朝它們的x或者y軸做操作都弹,

rotateX(10deg);
translate3D(12deg, 13deg, 14deg)
scaleY(10deg)

后綴3D和2D分別作3D和2D動畫,但是要注意:

Internet Explorer 10匙姜、Firefox畅厢、Opera 支持 transform 屬性。
Internet Explorer 9 支持替代的 -ms-transform 屬性(僅適用于 2D 轉(zhuǎn)換)氮昧。
Safari 和 Chrome 支持替代的 -webkit-transform 屬性(3D 和 2D 轉(zhuǎn)換)框杜。
Opera 只支持 2D 轉(zhuǎn)換浦楣。

transition

Transitions可以為一個元素在不同狀態(tài)之間切換的時候定義不同的過渡效果。比如在不同的偽元素之間切換霸琴,它是一個簡寫的屬性椒振,用于設(shè)置四個過渡屬性:transition-property(過渡的類型)、transition-duration(過渡的持續(xù)時間)梧乘、transition-timing-function(過渡速度效果的速度曲線)澎迎、transition-delay(規(guī)定過渡從何時開始),一般設(shè)置只設(shè)置前兩個屬性选调, 后面兩個很少用夹供,涉及到極為高深的數(shù)學(xué)。示例:

{
  width:100px;
  height:100px;
  background:blue;
  transition:width 2s;
  -moz-transition:width 2s; /* Firefox 4 */
  -webkit-transition:width 2s; /* Safari and Chrome */
  -o-transition:width 2s; /* Opera */
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仁堪,一起剝皮案震驚了整個濱河市哮洽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弦聂,老刑警劉巖鸟辅,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異莺葫,居然都是意外死亡匪凉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門捺檬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來再层,“玉大人,你說我怎么就攤上這事堡纬∧羰埽” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵烤镐,是天一觀的道長蛋济。 經(jīng)常有香客問我,道長炮叶,這世上最難降的妖魔是什么瘫俊? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮悴灵,結(jié)果婚禮上扛芽,老公的妹妹穿的比我還像新娘。我一直安慰自己积瞒,他們只是感情好川尖,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茫孔,像睡著了一般叮喳。 火紅的嫁衣襯著肌膚如雪被芳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天馍悟,我揣著相機與錄音畔濒,去河邊找鬼。 笑死锣咒,一個胖子當(dāng)著我的面吹牛侵状,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毅整,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼趣兄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悼嫉?” 一聲冷哼從身側(cè)響起艇潭,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎戏蔑,沒想到半個月后蹋凝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡总棵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年鳍寂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彻舰。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖候味,靈堂內(nèi)的尸體忽然破棺而出刃唤,到底是詐尸還是另有隱情,我是刑警寧澤白群,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布尚胞,位于F島的核電站,受9級特大地震影響帜慢,放射性物質(zhì)發(fā)生泄漏笼裳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一粱玲、第九天 我趴在偏房一處隱蔽的房頂上張望躬柬。 院中可真熱鬧,春花似錦抽减、人聲如沸允青。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春朴艰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腋腮。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工窍侧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓷蛙。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓悼瓮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親速挑。 傳聞我的和親對象是個殘疾皇子谤牡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)姥宝。 注意:講述HT...
    kismetajun閱讀 27,486評論 1 45
  • 十八歲翅萤,既是成年的時候,又是青春的黃金時段腊满。在那樣的日子套么,又會是怎樣的一片天空? ...
    非兒_dd75閱讀 272評論 0 1
  • 人碳蛋,生來便是行者胚泌,永遠(yuǎn)在路上。 生命肃弟,永遠(yuǎn)是旅途玷室,一直朝前走,直到終點笤受。 人生穷缤,就...
    德米的海島閱讀 872評論 0 3
  • 女兒的中學(xué)可能要在寄宿制的學(xué)校進(jìn)行了。學(xué)新崾蓿考察時津肛,我最關(guān)心的不是教學(xué)設(shè)計,升學(xué)率和豐富多彩的活動汗贫,而是“安...
    軍師姐姐閱讀 396評論 2 1
  • 心動的一瞬間 ——致海螺們的一封信 親愛的小海螺和大海螺們身坐,周末好! 這個星期落包,我們的周末作業(yè)中有一篇寫作部蛇,主題是...
    石子雨閱讀 305評論 0 0