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 相关文章推荐
jquery HotKeys轻松搞定键盘事件代码
Aug 30 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
Jan 17 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
jqGrid读取选择的多行的某个属性代码
May 18 Javascript
javascript实现随时变化着的背景颜色
Apr 02 Javascript
jquery插件hiAlert实现网页对话框美化
May 03 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
Jan 19 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
Node.js 的 GC 机制详解
Jun 03 Javascript
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python函数返回值实例分析
2015/06/08 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python可视化实现KNN算法
2019/10/16 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
英国香水店:The Perfume Shop
2017/03/27 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
关于环保的宣传稿
2015/07/23 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
MySQL注入基础练习
2021/05/30 MySQL
JavaScript函数柯里化
2021/11/07 Javascript