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

藏色散人
Freigeben: 2022-12-28 13:39:20
Original
2719 Leute haben es durchsucht

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
Nach dem Login kopieren
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
Nach dem Login kopieren
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
Nach dem Login kopieren
//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;}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage