React实现轮播效果


Posted in Javascript onAugust 25, 2020

本文实例为大家分享了React实现轮播,供大家参考,具体内容如下

思路

1、使用全局的state进行状态管理
2、设置全局下标,对当前的图片下表进行样式划分
3、定时循环人物便利改变全局下标 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <style>
    ul{
      width: 100%;
      text-align: center;
      list-style-type: circle;
    }
    ul>li{
      width: 2%;
      float: left;
    }
    img{
      width: 100%;
    }
    </style>
  <title>轮播事件</title>
</head>
<body>
  <div id="root" style="max-width: 700px;margin: 0 auto;"></div>
</body>
 
<script src="./js/react.development.js"></script>
<script src="./js/react-dom.development.js"></script>
<script src="./js/babel.min.js"></script>
<script type="text/babel">
  window.onload=()=>{
    class Img extends React.Component{
      constructor(props) {
        super(props);
        this.state={
          listImg:[
            './img/banner1.jpg', 
            './img/banner2.jpg', 
            './img/banner3.jpg', 
            './img/banner4.jpg',
            './img/banner5.jpg',
          ],
          index:0
        }
      }
      //计时器执行
      indexChange(){
        if(this.state.index == this.state.listImg.length-1){
          this.setState({
            index:0
          })
        }else{
          // this.state.index++;
          this.setState({
            index:this.state.index+1
          })
          console.log(this.state.index);
        }
      }
      componentDidMount(){
        setInterval(()=>{
          this.indexChange();
        },2000)
      }
      render(){
        let {listImg,index} = this.state;
        let imgList=listImg.map((item,imgIndex)=>{
          return <img src={item} key={imgIndex} style={{'display':index == imgIndex ? 'block' : 'none'}} className='img'/>  
        })
        let liList=listImg.map((item2,imgIndex2)=>{
          return <li key={imgIndex2} style={{'listStyleType':index == imgIndex2 ? 'initial' :'circle'}}></li> 
        })
        return (
          <div>
              {imgList}
            <div>
              <ul>
                {liList}
              </ul> 
            </div>
          </div>
        )
      
      }
    }
    
    ReactDOM.render(
      <Img />,
      document.getElementById("root")
    )
  }
 
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。 

Javascript 相关文章推荐
Javascript valueOf 使用方法
Dec 28 Javascript
使用jQuery.fn自定义jQuery翻页插件
Jan 20 Javascript
JS判断、校验MAC地址的2个实例
May 05 Javascript
js实现简单的验证码
Dec 25 Javascript
使用jquery.form.js实现图片上传的方法
May 05 Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 Javascript
微信小程序实现滚动消息通知
Feb 02 Javascript
js获取html页面代码中图片地址的实现代码
Mar 05 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
React实现全选功能
Aug 25 #Javascript
react实现复选框全选和反选组件效果
Aug 25 #Javascript
js实现数字跳动到指定数字
Aug 25 #Javascript
js实现点击选项置顶动画效果
Aug 25 #Javascript
理解JavaScript中的对象
Aug 25 #Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 #Javascript
node.js基础知识汇总
Aug 25 #Javascript
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
python日期相关操作实例小结
2019/06/24 Python
django创建简单的页面响应实例教程
2019/09/06 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
学习标兵获奖感言
2014/02/20 职场文书
个人承诺书
2014/03/26 职场文书
大学生操行评语大全
2014/12/31 职场文书
教师节座谈会主持词
2015/07/03 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis