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 相关文章推荐
ASP SQL防注入的方法
Dec 25 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
javascript中apply和call方法的作用及区别说明
Feb 14 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
JavaScript中this详解
Sep 01 Javascript
js生成随机数的方法实例
Oct 16 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
JavaScript动态添加事件之事件委托
Jul 12 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 Javascript
jQuery 动画与停止动画效果实例详解
May 19 jQuery
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
Apache2 httpd.conf 中文版
2006/12/06 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
CI框架中zip类应用示例
2014/06/17 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
33道php常见面试题及答案
2015/07/06 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
理解javascript中的闭包
2017/01/11 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python生成验证码实例
2014/08/21 Python
python框架django基础指南
2016/09/08 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Django中FilePathField字段的用法
2020/05/21 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
欧克利英国官网:Oakley英国
2019/08/24 全球购物
EJB的角色和三个对象
2015/12/31 面试题
毕业生自荐信如何写
2014/03/24 职场文书
区级文明单位申报材料
2014/05/15 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL