ReactJS之轮播图
来源:互联网 发布:淘宝中差评客服的术语 编辑:程序博客网 时间:2024/05/21 06:37
不多说了了,直接上代码;有不了解的加扣扣群 88322534
1.引入的js文件
2.css样式3.HTML元素
4.下面就是js了
<script type="text/babel"> //创建轮播盒子 var SliderBox = React.createClass({ getInitialState: function() { var data=[ "https://img.alicdn.com/imgextra/i3/113/TB2o18uzUhnpuFjSZFpXXcpuXXa_!!113-0-luban.jpg_q100.jpg", "https://aecpm.alicdn.com/simba/img/TB1W4nPJFXXXXbSXpXXSutbFXXX.jpg", "https://img.alicdn.com/tps/i4/TB1vHgyRVXXXXbJaXXXSutbFXXX.jpg", "https://img.alicdn.com/tfs/TB17RX4SXXXXXakXFXXXXXXXXXX-1130-500.jpg_q100.jpg", "https://img.alicdn.com/imgextra/i2/133/TB2N_0XzHJmpuFjSZFwXXaE4VXa_!!133-0-luban.jpg_q100.jpg", "https://aecpm.alicdn.com/simba/img/TB1_JXrLVXXXXbZXVXXSutbFXXX.jpg"];return {data: data, dataLength: data.length, nowIndex:0,nowZ:2}; }, componentWillMount: function() { this.interval = setInterval(this.autoSlider, 2000); }, autoSlider:function(){ var nowIndex=this.state.nowIndex; if(nowIndex<this.state.dataLength-1)nowIndex+=1; elsenowIndex=0; this.setState({nowIndex:nowIndex,nowZ:this.state.nowZ+1}); }, componentDidMount: function() {/*$.ajax({ url: this.props.url, dataType: 'json', cache: false, success: function(data) {this.setState({data: data}); }.bind(this), error: function(xhr, status, err) {console.error(this.props.url, status, err.toString()); }.bind(this)});*/ }, silderBoxEnter:function(e){ ReactDOM.findDOMNode(this.refs.left).style.display="block"; ReactDOM.findDOMNode(this.refs.right).style.display="block"; clearInterval(this.interval); }, silderBoxLeave:function(e){ ReactDOM.findDOMNode(this.refs.left).style.display="none"; ReactDOM.findDOMNode(this.refs.right).style.display="none"; this.interval = setInterval(this.autoSlider, 2000); }, leftClick:function(e){ var nowIndex=0; if(0==this.state.nowIndex) nowIndex=this.state.dataLength-1; else nowIndex=this.state.nowIndex-1; this.setState({nowIndex:nowIndex,nowZ:this.state.nowZ+1}); }, rightClick:function(e){ var nowIndex=0; if((this.state.dataLength-1)==this.state.nowIndex) nowIndex=0; else nowIndex=this.state.nowIndex+1; this.setState({nowIndex:nowIndex,nowZ:this.state.nowZ+1}); }, //这个鼠标移上事件会传到轮播Menu里使用 navsOver:function(e){var id=e.target.getAttribute("data-id");this.setState({nowIndex:parseInt(id),nowZ:this.state.nowZ+1}); }, render: function() {return ( <div className="slider-box" onMouseEnter={this.silderBoxEnter} onMouseLeave={this.silderBoxLeave}><SliderList data={this.state.data} nowZ={this.state.nowZ} nowIndex={this.state.nowIndex}/><div className="left" ref="left" onClick={this.leftClick} style={{zIndex:this.state.nowZ+10}}></div> <div className="right" ref="right" onClick={this.rightClick} style={{zIndex:this.state.nowZ+10}}></div><SliderMenu dataLength={this.state.dataLength} nowZ={this.state.nowZ} nowIndex={this.state.nowIndex} navsOver={this.navsOver}/> </div>); }});//创建轮播内容var SliderList = React.createClass({ render: function() {var sliderNodes=[];var nowIndex=this.props.nowIndex;var nowZ=this.props.nowZ;this.props.data.forEach(function(e,i){sliderNodes.push(<li className={i==nowIndex?'select slider-'+i:'slider-'+i} style={{zIndex:i==nowIndex?nowZ:1}} key={i}><img src={e}/></li>);});return ( <ul className="slider-list">{sliderNodes} </ul>); }});//创建轮播图底部导航var SliderMenu = React.createClass({ render: function() {var sliderNavs=[];var nowIndex=this.props.nowIndex;for(var i=0;i<this.props.dataLength;i++){sliderNavs.push(<li onMouseOver={this.props.navsOver} className={i==nowIndex?'slider-active':''} data-id={i} key={i}></li>);}return ( <div className="slider-nav" style={{zIndex:this.props.nowZ+10}}><ol>{sliderNavs}</ol> </div>); }});ReactDOM.render( <SliderBox url="./banner.json" />, document.getElementById('banner') ); </script>
阅读全文
0 0
- ReactJS之轮播图
- ReactJS使用心得之轮播图
- reactJS之react-route
- ReactJs之表单处理
- ReactJs之render
- ReactJs之组件生命周期
- Reactjs 之 mixins
- reactjs
- ReactJS
- ReactJS
- Reactjs
- Reactjs
- reactjs性能优化之shouldComponentUpdate
- 开启ReactJS之Hello World
- ReactJs 的另类之处
- reactjs之redux深度理解
- reactjs性能优化之shouldComponentUpdate
- React Native实战之ReactJS
- MFC中GDI超过9999导致程序崩溃问题的解决
- 路由生产算法调研
- 02. 希尔排序
- Hashmap原理详细介绍
- 《剑指offer》二叉树的深度
- ReactJS之轮播图
- 03. 快速排序
- (61)基本数据类型对象包装类
- Unable to run mksdcard SDK tool
- Kaggle房价预测:数据预处理——练习
- Ubuntu 16.04安装和使用Docker
- Centos系统备份与恢复教程
- 04. 归并排序
- 卡片游戏