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 相关文章推荐
B/S开发中常用javaScript技术与代码
Mar 09 Javascript
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
DIV外区域Click后关闭DIV的实现代码
Dec 21 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
使用jsonp实现跨域获取数据实例讲解
Dec 25 Javascript
jQuery动态产生select option下拉列表
Mar 15 Javascript
关于JavaScript中的this指向问题总结篇
Jul 23 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
vue 实现全选全不选的示例代码
Mar 29 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 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存储session的php代码
2008/01/10 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
jQuery动态添加
2016/04/07 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
母亲节感恩活动记录
2014/03/16 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
个人向公司借款协议书
2014/10/09 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
python单元测试之pytest的使用
2021/06/07 Python
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android