前端

react实现的无缝轮播

2019-06-18  本文已影响0人  没错就是我了

// 轮播图

class Slidesextends Component {

constructor(){

super();

this.state = {

index:0

        }

}

componentDidMount() {

setInterval(()=>{

if(this.state.index >=5){

this.ul.style.transitionDuration ='0s';

this.ul.style.left =0;

setTimeout(()=>{

this.ul.style.transitionDuration ='1s';

this.setState({

index:1

                    });

},0);

return;

}

this.setState({

index:this.state.index+1

            })

},2000);

}

render() {

let style = {

left: -800*this.state.index+'px'

        };

return (

<div className="wrap">

<div className="box">

<ul style={style} className="slide" ref={(ul)=>{this.ul=ul;}}>

{

this.props.imgs.map((item,index)=>{

return <li key={index}><img src={item}/></li>

})

}

<li><img src={this.props.imgs[0]}/></li>

</ul>

<ul className="dots">

{

this.props.imgs.map((item,index)=>{

return <li className={this.state.index===index || (index===0 &&this.state.index ===this.props.imgs.length) ?'active' :'' } key={index}></li>

})

}

</ul>

</div>

</div>

);

}

}

let imgs = [

require('./assets/images/banner01.jpg'),

require('./assets/images/banner02.jpg'),

require('./assets/images/banner03.jpg'),

require('./assets/images/banner04.jpg'),

require('./assets/images/banner05.jpg')

];

ReactDOM.render(<Slides imgs={imgs}/>,document.getElementById('root'));

上一篇 下一篇

猜你喜欢

热点阅读