Heim >Web-Frontend >Front-End-Fragen und Antworten >So implementieren Sie das Ein- und Ausblenden in React

So implementieren Sie das Ein- und Ausblenden in React

藏色散人
藏色散人Original
2022-12-28 13:38:412738Durchsuche

So implementieren Sie das Ein- und Ausblenden in React: 1. Laden Sie die Bibliothek „react-addons-css-transition-group“ über „npm i React-addons-css-transition-group“ herunter. 2. Über „ render(){return(< ;div className="list" onMouseLeave={this.start.bind...}" kann zum Ein- und Ausblenden verwendet werden.

So implementieren Sie das Ein- und Ausblenden in React

Die Betriebsumgebung dieses Tutorials: Windows 10-System, React-Version 18.0.0, Dell G3-Computer

Wie implementiert man Ein- und Ausblendung in React? Sie müssen eine Bibliothek herunterladen, nämlich npm i react-addons-css-transition-group, und sich dann den Code ansehen

//Pic.js

import React,{Component} from &#39;react&#39;
import Img1 from &#39;../../image/1.jpg&#39;
import Img2 from &#39;../../image/2.jpg&#39;
import Img3 from &#39;../../image/3.jpg&#39;
import Image from &#39;./Image&#39;
import Dot from &#39;./Dot&#39;
import &#39;./pic.css&#39;
class Pic extends Component{
    constructor(props){
        super(props)
        this.state={current:0,
            src:[Img1,Img2,Img3]
        }
        this.timer=null;
    }
    componentDidMount(){
        this.timer=setInterval(()=>{
            this.setState((prev)=>{return{current:(prev.current+1)%3}})
        },3000)
    }
    clear(){
        clearInterval(this.timer);
    }//鼠标移入结束动画
    start(){
        this.timer=setInterval(()=>{
            this.setState((prev)=>{return{current:(prev.current+1)%3}})
        },3000)
    }//鼠标移出开始动画
    change=(i)=>{
        console.log(i)
        this.setState({current:i})
    }//鼠标点击原点切换图片

    render(){
        return(<div className="list" 
        onMouseLeave={this.start.bind(this)}
        onMouseEnter={this.clear.bind(this)}>
            <Image src={this.state.src[this.state.current]} 
            current={this.state.current}
            name="item"
            component={&#39;li&#39;}
            enterDelay={1500}//动画开始所用时间
            leaveDelay={1500}//动画结束所用时间
            ></Image>
            <Dot current={this.state.current} change={this.change}></Dot>
        </div>)


    }

}
export default Pic
Image.js

import React,{Component} from &#39;react&#39;
import CSSTransitionGroup from &#39;react-addons-css-transition-group&#39;;
import &#39;./pic.css&#39;

class Image extends Component{

    constructor(props){
        super(props)
    }

    render(){
        return(
        <ul>
        <CSSTransitionGroup
               component={this.props.component}
               transitionName={this.props.name}
               transitionEnterTimeout={this.props.enterDelay}
               transitionLeaveTimeout={this.props.leaveDelay}
               className={this.props.name}
        >
            <img src={this.props.src}
            key={this.props.src}
            ></img>
        </CSSTransitionGroup>
        </ul>
        )
    }

}

export default Image
Dot.js

import React ,{Component} from &#39;react&#39;

class Dot extends Component{
    constructor(props){
        super(props)
        this.state={arr:[1,2,3]}
    }
    render(){
        return(<div className="dot">
            <ul>
            {this.state.arr.map((item,index)=>{
                return(<li 
                    onClick={this.props.change.bind(this,index)}
                    key={index}
                    className={[index==this.props.current?&#39;current&#39;:&#39;&#39;]}></li>)
            })}
            </ul>
        </div>)
    }
}

export default Dot
//css样式
*{margin:0;padding:0;}
.list{width:500px;
     height:400px;
     margin:30px auto;
}
ul{position: relative;
   width:500px;
   height:400px;
   overflow: hidden;
}
li{
    position: absolute;
    list-style: none;}
img{width:500px;
    height:400px;
    }
.item-enter{
    position: absolute;
    opacity: 0;

}
.item-enter-active{opacity:1;
    transition: 1.5s opacity ease-in-out;
}
.item-leave{ position: absolute;
    opacity: 1;}
.item-leave-active{
    opacity: 0;
    transition: 1.5s opacity ease-in-out;
}

.dot{
    position: absolute;
    top:380px;
    left:250px;
  
    width:150px;
    height:50px;
}
.dot ul{width:100%;
        height:100%;
}
.dot li{
    position: static;
    float:left;
    margin-left:10px;
    width:25px;
    height:25px;
    border-radius: 50%;
    border:1px solid deeppink;
    transition:3s;
    list-style:none;}

.current{background-color: gold;}

Empfohlene Studie: „

React-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Ein- und Ausblenden in React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn