成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React動(dòng)畫(huà)

ThinkSNS / 370人閱讀

摘要:一實(shí)現(xiàn)動(dòng)畫(huà)通過(guò)讓界面迅速發(fā)生變化但動(dòng)畫(huà)的哲學(xué)告訴我們變化要慢得用一個(gè)逐漸變化的過(guò)程來(lái)過(guò)渡從而幫助用戶理解頁(yè)面界面的變化可以分為節(jié)點(diǎn)或組件的增與減以及節(jié)點(diǎn)或?qū)傩缘淖兓渲刑峁┑哪軌驇椭覀儽憬莸淖R(shí)別出增加或刪除的組件從而讓我們能夠?qū)W⒂诟雍?jiǎn)

一.React實(shí)現(xiàn)動(dòng)畫(huà)

1.React通過(guò)setState讓界面迅速發(fā)生變化,但動(dòng)畫(huà)的哲學(xué)告訴我們,變化要慢,得用一個(gè)逐漸變化的過(guò)程來(lái)過(guò)渡,從而幫助用戶理解頁(yè)面.
界面的變化可以分為DOM節(jié)點(diǎn)(或組件)的增與減以及DOM節(jié)點(diǎn)(或?qū)傩?的變化.
其中React提供的ReactCSSTransition能夠幫助我們便捷的識(shí)別出增加或刪除的組件,
從而讓我們能夠?qū)W⒂诟雍?jiǎn)單的屬性變化的動(dòng)畫(huà).
2.這里統(tǒng)一將緩動(dòng)函數(shù)通過(guò)js實(shí)現(xiàn)的動(dòng)畫(huà)稱作js動(dòng)畫(huà),緩動(dòng)函數(shù)由css提供的動(dòng)畫(huà)稱作css動(dòng)畫(huà).
3.ReactCSSTransition插件就是利用CSS的Transition和animation來(lái)實(shí)現(xiàn)組件的出場(chǎng)和入場(chǎng)動(dòng)畫(huà).

二.CSS3 transition

1.css3過(guò)渡是元素從一種樣式逐漸改變?yōu)榱硪环N的效果.

.ani2 {
    width: 100px;
    height: 100px;
    border: 1px solid #ccc;
    transition: width 1s, transform 1s;
    animation: myfirst 3s infinite;
    &:hover {
        width: 200px;
        transform: rotate(360deg);
    }
}
三.css3 animation

1.@keyframes用于創(chuàng)建動(dòng)畫(huà),然后捆綁到某個(gè)選擇器.

@keyframes myfirst {
    0% {
        background: #f00;
    }
    50% {
        background: #0f0;
    }
    100% {
        background: #ccc;
    }
}

.ani2 {
    width: 100px;
    height: 100px;
    border: 1px solid #ccc;
    transition: width 1s, transform 1s;
    animation: myfirst 3s infinite;
    &:hover {
        width: 200px;
        transform: rotate(360deg);
    }
}
四.react-addons-css-transition-group插件

1.react-addons-transition-group插件,就是在transition和animation兩個(gè)css屬性上實(shí)現(xiàn)的.
2.ReactCSSTransition工作原理
當(dāng)組件出現(xiàn)時(shí),會(huì)在組件添加transitionName-appear,然后下一時(shí)刻會(huì)給組件添加transitionName-appear-active類,
當(dāng)組件進(jìn)場(chǎng)時(shí),給組件添加transitionName-enter類,然后下一時(shí)刻會(huì)給組件添加transitionName-enter-active類;
當(dāng)組件出場(chǎng)時(shí),會(huì)給組件添加transitionName-leave類,然后下一時(shí)刻給組件添加transitionName-leave-active類,
我們則可以在css文件中,通過(guò)設(shè)置transition,設(shè)置我們需要執(zhí)行的動(dòng)畫(huà).
一般情況下,我們主要使用后兩種,并且,只有當(dāng)組件的出場(chǎng)動(dòng)畫(huà)完全執(zhí)行完以后,組件才會(huì)被移除.
2.ReactCSSTransitionGroup組件參數(shù)
ReactCSSTransitionGroup其實(shí)就是一個(gè)組件,他規(guī)定了特定的參數(shù),我們通過(guò)設(shè)置這些特定的參數(shù),將這些參數(shù)反應(yīng)到被其包裹的子組件中.
transitionName:設(shè)置動(dòng)態(tài)生成類的自定義前綴.
component:字符串,設(shè)置ReactCSSTransition生成包裹子組件的標(biāo)簽,默認(rèn)時(shí)span,我們可以通過(guò)這個(gè)參數(shù)自定義,如div,li
transitionEnter:布爾值,設(shè)置是否使用出場(chǎng)動(dòng)畫(huà),默認(rèn)時(shí)true.
transitionEnterTimeout:數(shù)值,設(shè)置入場(chǎng)動(dòng)畫(huà)的執(zhí)行時(shí)間,需要在css中和這里同時(shí)設(shè)置,否則會(huì)提示警告.
transitionLeave:布爾值,設(shè)置是否使用出場(chǎng)動(dòng)畫(huà),默認(rèn)時(shí)true.
transitionLeaveTimeout:數(shù)值,設(shè)置出場(chǎng)動(dòng)畫(huà)的執(zhí)行時(shí)間,需要在css中和這里同時(shí)設(shè)置,否則會(huì)提示警告.
3.使用步驟
1.引包

var ReactCSSTransitionGroup = require("react-addons-css-transition-group");

2.將ReactCSSTransition組件添加到render中
ReactCSSTransitionGroup組件需要添加到已經(jīng)掛載到頁(yè)面上的dom元素中.

淡入淡出實(shí)例
class TodoList extends Component {
    constructor(props) {
        super(props);
        this.state = {
            items: ["1111", "2222", "3333", "4444"]
        };
    }
    handleAdd = () => {
        var newItems = this.state.items.concat([prompt("enter some text")]);
        this.setState({
            items: newItems
        });
    }
    handleRemove = (i) => {
        var newItems = this.state.items.slice();
        newItems.splice(i, 1);
        this.setState({
            items: newItems
        });
    }
    render() {
        return (
            
{ this.state.items.map((item, i) => { return (
{ item }
) }) }
); } } .example-enter { opacity: 0.01; } .example-enter.example-enter-active { opacity: 1; transition: opacity 500ms ease-in; } .example-leave { opacity: 1; } .example-leave.example-leave-active { opacity: 0.01; transition: opacity 300ms ease-in; }
輪播圖實(shí)例
class ImageCarousel extends Component {
    constructor(props) {
        super(props);
        this.state = {
            a: [
                "https://s1.sonkwo.com/FhXx9C5gqykP4UUJHPKfpS1cexVP",
                "http://7fvk4m.com1.z0.glb.clouddn.com/Fjn9lT9RdzW1dpIJ_7vSrxB4UKNB",
                "http://7fvk4m.com1.z0.glb.clouddn.com/FsDTCVnB9DYkWF-m0p7zNdVfadTg"
            ],
            current: 0
        };
    }
    componentDidMount() {
        setInterval(() => {
            let current = this.state.current;
            current++;
            if (current > this.state.a.length - 1) {
                current = 0;
            }
            this.setState({
                current
            });
        }, 5000);
    }
    render() {
        let { a, current } = this.state;

        return (
            
); } } .react-slide { li { width: 440px; height: 260px; overflow: hidden; } .carousel-enter { opacity: 0.01; } .carousel-enter.carousel-enter-active { opacity: 1; transition: opacity 1s ease-in-out; } .carousel-leave { opacity: 1; } .carousel-leave.carousel-leave-active { opacity: 0.01; transition: opacity 1s ease-in-out; } }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84593.html

相關(guān)文章

  • React應(yīng)用“動(dòng)”起來(lái)

    摘要:因?yàn)槠浣M件只是根據(jù)提供的及屬性,生成動(dòng)畫(huà)的數(shù)據(jù),業(yè)務(wù)應(yīng)用中拿到生成的數(shù)據(jù)后根據(jù)需要添加需要?jiǎng)赢?huà)的組件樣式。除了上述簡(jiǎn)單的動(dòng)畫(huà)應(yīng)用,在復(fù)雜動(dòng)畫(huà)的實(shí)現(xiàn)方面,表現(xiàn)非常優(yōu)越。 WEB應(yīng)用中動(dòng)畫(huà)很重要 不管是web應(yīng)用還是原生應(yīng)用,也不論是PC端應(yīng)用還是移動(dòng)端應(yīng)用,動(dòng)畫(huà)都扮演了一個(gè)重要的角色。 盡管動(dòng)畫(huà)并不會(huì)添加應(yīng)用的實(shí)際動(dòng)能,但一個(gè)好的動(dòng)畫(huà),一個(gè)流暢且優(yōu)雅,選擇在恰當(dāng)時(shí)機(jī)出現(xiàn)的動(dòng)畫(huà),能為應(yīng)用增...

    xiyang 評(píng)論0 收藏0
  • React Web 動(dòng)畫(huà)的 5 種創(chuàng)建方式,每一種都不簡(jiǎn)單

    摘要:以前一直投入在中,寫(xiě)動(dòng)畫(huà)的時(shí)候不是用中的,就是依賴像這樣的庫(kù),最近轉(zhuǎn)向,在得到很多大佬關(guān)于動(dòng)畫(huà)的回應(yīng),于是決定分享給大家,如有其他見(jiàn)解,非常歡迎在下面評(píng)論中交流以下便是本文要分享的創(chuàng)建動(dòng)畫(huà)的幾種方式下面,勒次個(gè)特斯大特一特給元素添加是最簡(jiǎn)單 以前一直投入在 React Native 中,寫(xiě)動(dòng)畫(huà)的時(shí)候不是用 CSS 中的 transitions / animations,就是依賴像 Gr...

    solocoder 評(píng)論0 收藏0
  • React動(dòng)畫(huà)實(shí)現(xiàn)原理

    摘要:動(dòng)畫(huà)的實(shí)現(xiàn)原理要實(shí)現(xiàn)動(dòng)畫(huà),究其根本,最終的落地依然是操作從而達(dá)到頁(yè)面呈現(xiàn)動(dòng)畫(huà)的目的。 聲明: 當(dāng)前為草稿階段。然后有人可以指引下怎么寫(xiě)草稿文章么~ web動(dòng)畫(huà)的實(shí)現(xiàn)原理 web動(dòng)畫(huà)的實(shí)現(xiàn),最終都是需要操作dom。CSS動(dòng)畫(huà),是給相應(yīng)的dom元素添加動(dòng)畫(huà)className ; JS動(dòng)畫(huà),則是通過(guò)定時(shí)器或其他手段,不斷更改dom元素屬性值,達(dá)到動(dòng)畫(huà)的目的。 React動(dòng)畫(huà)的實(shí)現(xiàn)原理 Re...

    mrli2016 評(píng)論0 收藏0
  • 探究 React Native 中 Props 驅(qū)動(dòng)的 SVG 動(dòng)畫(huà)和 Value 驅(qū)動(dòng)動(dòng)畫(huà)

    摘要:再來(lái)看前端,前端的動(dòng)畫(huà)實(shí)現(xiàn),經(jīng)過(guò)多年的發(fā)展,已分為動(dòng)畫(huà)和動(dòng)畫(huà)。此外還探究了驅(qū)動(dòng)動(dòng)畫(huà)在實(shí)現(xiàn)方法上的不同之處。驅(qū)動(dòng)的動(dòng)畫(huà)接下來(lái)看驅(qū)動(dòng)的動(dòng)畫(huà)。改造后的函數(shù)如下關(guān)鍵修改,強(qiáng)制刷新。對(duì)于,函數(shù)是可行的,然而對(duì)無(wú)效。 引言 一直以來(lái),動(dòng)畫(huà)都是移動(dòng)開(kāi)發(fā)中極為特殊的一塊。一方面,動(dòng)畫(huà)在交互體驗(yàn)上有著不可替代的優(yōu)越處,然而另一方面,動(dòng)畫(huà)的開(kāi)發(fā)又極為的耗時(shí),需要消耗工程師大量的時(shí)間用于開(kāi)發(fā)和調(diào)試。再來(lái)看前...

    Codeing_ls 評(píng)論0 收藏0
  • React源碼剖析系列 - 玩轉(zhuǎn) React Transition

    摘要:后面將會(huì)仔細(xì)分析的源碼實(shí)現(xiàn)。更新完成后,對(duì)中的每個(gè)元素執(zhí)行動(dòng)畫(huà)的邏輯,對(duì)中的每個(gè)元素執(zhí)行動(dòng)畫(huà)的邏輯。事實(shí)上,原因很簡(jiǎn)單,事件在某些情況是不會(huì)被觸發(fā)??偨Y(jié)動(dòng)畫(huà)是組件初次后,才會(huì)被添加到的所有子元素上。參考資料官方文檔事件 過(guò)去一年,React 給整個(gè)前端界帶來(lái)了一種新的開(kāi)發(fā)方式,我們拋棄了無(wú)所不能的 DOM 操作。對(duì)于 React 實(shí)現(xiàn)動(dòng)畫(huà)這個(gè)命題,DOM 操作已經(jīng)是一條死路,而 CSS...

    rottengeek 評(píng)論0 收藏0
  • 【譯】React Native 動(dòng)畫(huà) API 入門(mén)實(shí)例

    摘要:簡(jiǎn)而言之,它將對(duì)動(dòng)畫(huà)中變化的屬性數(shù)值做插值運(yùn)算并且刷新視圖。注意我們所建立的的是的一個(gè)實(shí)例。最后我們使用,表示這個(gè)組件是可動(dòng)畫(huà)組件。一直不停動(dòng)動(dòng)畫(huà)序列的方法可以傳一個(gè)回調(diào)函數(shù),在動(dòng)畫(huà)全部執(zhí)行完時(shí)觸發(fā)。 翻譯自 React-native Animated API Basic Example 翻譯過(guò)程中有刪改 簡(jiǎn)介 本文是探索 react-native 中實(shí)現(xiàn)的的 Animated AP...

    qianfeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<