圣誕節(jié)快到了祈秕,用react native 動(dòng)畫實(shí)現(xiàn)飄雪效果

初始化雪花

首先來(lái)個(gè)五十片雪花吧,在class外面定義一個(gè)數(shù)組操软。

const snowNumber = 50;
for (var i = 0; i < snowNumber; i++) {
    arr.push(i);
}

設(shè)置每片雪花動(dòng)畫的初始值

為了創(chuàng)建一個(gè)動(dòng)畫嘁锯,我們首先要?jiǎng)?chuàng)建一個(gè)動(dòng)畫使用的值。

import React from 'react';
import {
  View,
  StyleSheet,
  PanResponder,
  Dimensions,
  Animated,
  Image,
  Easing
} from 'react-native';

export default class Snow extends React.Component {
  constructor(props) {
    super(props);
    arr.forEach((value) => {
      this.animatedValue[value] = new Animated.Value(0);
    });
  }

為每片雪花創(chuàng)建一個(gè)animated view

由于每片雪花的動(dòng)畫是一樣的聂薪,因此我們讓每片雪花使用同樣的樣式this.snowAnimate(),該方法返回一個(gè)樣式對(duì)象家乘。

  render() {
    const animations = arr.map((a, i) => {
      return (
        <Animated.View
          key={i}
          style={[styles.snowBox, this.snowAnimate(a)]}
        >
          <Image source={Snow} style={styles.snow}/>
        </Animated.View>
      );
    });
    return (
      <View style={styles.container}>
        {animations}     
      </View>
    );
  }

為每片雪花的創(chuàng)建動(dòng)畫

由于想讓無(wú)限的落雪,因此在函數(shù)一開始又將每片雪花的動(dòng)畫值設(shè)置成了0藏澳。
使用animated.timing創(chuàng)建了一個(gè)動(dòng)畫仁锯,使一個(gè)值按照一個(gè)過(guò)渡曲線而隨時(shí)間變化。(消耗類型的)笆载,在它開始后又調(diào)用了本身扑馁,這是創(chuàng)建無(wú)限動(dòng)畫的一種方式涯呻。Animated.stagger():一個(gè)動(dòng)畫數(shù)組,傳入一個(gè)時(shí)間參數(shù)來(lái)設(shè)置隊(duì)列動(dòng)畫間的延遲腻要,即在前一個(gè)動(dòng)畫開始之后复罐,隔一段指定時(shí)間才開始執(zhí)行下一個(gè)動(dòng)畫里面的動(dòng)畫,并不關(guān)心前一個(gè)動(dòng)畫是否已經(jīng)完成雄家,所以有可能會(huì)出現(xiàn)同時(shí)執(zhí)行(重疊)的情況效诅。設(shè)置好,每片雪花的相隔時(shí)間趟济,這樣就能讓雪一片一片飄落啦乱投!

  animateSnow () {
    arr.forEach((value) => {
      this.animatedValue[value].setValue(0)
    });
    const animations = arr.map((item) => {
      return Animated.timing(
        this.animatedValue[item],
        {
          toValue: snowNumber,
          duration: 10000,
          easing: Easing.linear
        }
      );
    })
    Animated.stagger(300, animations).start(() => this.animateSnow());
  }
  

每片雪花的動(dòng)畫樣式

為了讓雪花飄落顯得真實(shí)自然,這里使用Math.random打亂了雪花的左右順序顷编。

    snowAnimate (item) {
        return {
            position: 'absolute',
            left: parseInt(Math.random()*(deviceWidth),10),
            top: this.animatedValue[item].interpolate({
                inputRange: [0, snowNumber],
                outputRange: [-100, deviceHeight-100],
            })
        }

    }
雪花效果圖哦~

最后戚炫,祝大家圣誕快樂!O蔽场双肤!

項(xiàng)目git地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钮惠,隨后出現(xiàn)的幾起案子茅糜,更是在濱河造成了極大的恐慌,老刑警劉巖素挽,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔑赘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡预明,警方通過(guò)查閱死者的電腦和手機(jī)缩赛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贮庞,“玉大人峦筒,你說(shuō)我怎么就攤上這事〈吧鳎” “怎么了物喷?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)遮斥。 經(jīng)常有香客問我峦失,道長(zhǎng),這世上最難降的妖魔是什么术吗? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任尉辑,我火速辦了婚禮,結(jié)果婚禮上较屿,老公的妹妹穿的比我還像新娘隧魄。我一直安慰自己卓练,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布购啄。 她就那樣靜靜地躺著襟企,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狮含。 梳的紋絲不亂的頭發(fā)上顽悼,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音几迄,去河邊找鬼蔚龙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛映胁,可吹牛的內(nèi)容都是我干的木羹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼解孙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼汇跨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起妆距,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎函匕,沒想到半個(gè)月后娱据,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盅惜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年中剩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抒寂。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡结啼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屈芜,到底是詐尸還是另有隱情郊愧,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布井佑,位于F島的核電站属铁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏躬翁。R本人自食惡果不足惜焦蘑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盒发。 院中可真熱鬧例嘱,春花似錦狡逢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至间学,卻和暖如春殷费,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背低葫。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工详羡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嘿悬。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓实柠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親善涨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窒盐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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

  • 他是不是通過(guò)中場(chǎng)休息中認(rèn)識(shí)的人,遇見的事而更清楚地知道了自己是誰(shuí)……或許是他發(fā)現(xiàn)做士兵是一件更自然也更自在的事情钢拧,...
    KATE小奕閱讀 348評(píng)論 0 0
  • 周一大早會(huì)蟹漓,營(yíng)銷一區(qū)經(jīng)理來(lái)劉德弘到肇州支公司,她是大慶區(qū)域優(yōu)秀得領(lǐng)導(dǎo)干部源内,才華出眾葡粒,給人的感覺非常有親和力,告訴我...
    波瀾起伏閱讀 112評(píng)論 0 0
  • 《怪誕心理學(xué)》:【英】理查德·懷斯曼 1膜钓、“諂媚效應(yīng)” 如果有人說(shuō)你很熱心嗽交,即便不是事實(shí),你也會(huì)感到很高興颂斜。因?yàn)槿?..
    好聽的暖陽(yáng)閱讀 260評(píng)論 3 4
  • 中商產(chǎn)業(yè)研究院數(shù)據(jù)說(shuō):我國(guó)逐漸成為功能性飲料的消費(fèi)大國(guó)沃疮,年均零售額增長(zhǎng)率20%'預(yù)計(jì)到2020年盒让,零售額將達(dá)到20...
    馳騁峰財(cái)閱讀 416評(píng)論 0 0