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实现画板的代码
Sep 05 Javascript
JavaScript Undefined,Null类型和NaN值区别
Oct 22 Javascript
关于COOKIE个数与大小的问题
Jan 17 Javascript
JavaScript中为元素加上name属性的方法
May 09 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
Jul 29 Javascript
js 左右悬浮对联广告特效代码
Dec 12 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
Aug 14 Javascript
angularJs中json数据转换与本地存储的实例
Oct 08 Javascript
详解vue路由
Aug 05 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
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python实现控制台打印的方法
2019/01/12 Python
python树莓派红外反射传感器
2019/01/21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
python从Oracle读取数据生成图表
2020/10/14 Python
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
商务主管岗位职责
2013/12/08 职场文书
工业自动化毕业生自荐信范文
2014/01/04 职场文书
2014年人事科工作总结
2014/11/19 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
道歉信怎么写
2015/05/12 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
Redis过期数据是否会被立马删除
2022/07/23 Redis