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 相关文章推荐
Js之软键盘实现(js源码)
Jan 30 Javascript
移动手机APP手指滑动切换图片特效附源码下载
Nov 30 Javascript
vue从使用到源码实现教程详解
Sep 19 Javascript
微信小程序 wxapp导航 navigator详解
Oct 31 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
vue动态路由配置及路由传参的方式
May 23 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
vue中轮训器的使用
Jan 27 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 Javascript
Vue js with语句原理及用法解析
Sep 03 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实现在多维数组中查找特定value的方法
2015/07/29 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
实例说明Python中比较运算符的使用
2015/05/13 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
8种常用的Python工具
2020/08/05 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
汽车专业毕业生自荐信
2013/11/03 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
酒吧创业计划书
2014/01/18 职场文书
小学开学寄语
2014/01/19 职场文书
机械制造专业毕业生求职信
2014/03/02 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
mysql sql常用语句大全
2022/06/21 MySQL