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 each()方法的使用方法
Mar 18 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
node.js中的events.emitter.removeListener方法使用说明
Dec 10 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
vue实现同一个页面可以有多个router-view的方法
Sep 20 Javascript
JS防抖和节流实例解析
Sep 24 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python重试装饰器的简单实现方法
2019/01/31 Python
用Python解决x的n次方问题
2019/02/08 Python
python 实现表情识别
2020/11/21 Python
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
软件测试面试题
2015/10/21 面试题
找规律教学反思
2016/02/23 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js