亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React CSSTransition 沒有動畫

React CSSTransition 沒有動畫

翻閱古今 2021-11-18 17:04:01
我想在我的 Web 應用程序中為一個框設置動畫(淡入、淡出)。我為此使用了react-transition-group。但不知何故,動畫不起作用。代碼import React from 'react';import ReactDOM from 'react-dom';import { CSSTransition } from 'react-transition-group';import Modal from 'react-modal';import './styles.css';class Example extends React.Component {  state = {    isOpen: false,  };  toggleModal = () => {    this.setState(prevState => ({      isOpen: !prevState.isOpen,    }));  };  render() {    const modalStyles = {      overlay: {        backgroundColor: '#ffffff',      },    };    return (      <div>        <button onClick={this.toggleModal}>          Open Modal        </button>        <CSSTransition          in={this.state.isOpen}          timeout={300}          classNames="dialog"        >          <Modal            isOpen={this.state.isOpen}            style={modalStyles}          >            <button onClick={this.toggleModal}>              Close Modal            </button>            <div>Hello World</div>          </Modal>        </CSSTransition>      </div>    );  }}CSS:.dialog-enter {  opacity: 0;  transition: opacity 500ms linear;}.dialog-enter-active {  opacity: 1;}.dialog-exit {  opacity: 0;}.dialog-exit-active {  opacity: 1;}.box {  width: 200px;  height: 100vh;  background: blue;  color: white;}這是工作代碼。單擊“打開模態”打開模態,然后單擊“切換框”打開/關閉我想要動畫的框。
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

您必須完全信任 CSSTransition 的裝載/卸載。


  <CSSTransition

    in={this.state.boxVisible}

    timeout={1500}

    classNames="dialog"

    unmountOnExit

  >

    <div>

      <div className="box">Box</div>

    </div>

  </CSSTransition>

見這里:https : //codesandbox.io/s/csstransition-component-9obbb


更新: 如果您想按照評論中的要求移動具有 left css 屬性的元素。您還必須向它添加 position: realative 樣式。


.dialog-enter {

  left: 100%;

  transition: left 1500ms;

  position: relative;

}

.dialog-enter-active {

  left: 0;

}

.dialog-exit {

  left: 0;

  transition: left 1500ms;

  position: relative;

}

.dialog-exit-active {

  left: 100%;

}


查看完整回答
反對 回復 2021-11-18
  • 1 回答
  • 0 關注
  • 353 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號