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 json 新手入门文档
Dec 03 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
js实现按钮控制图片360度翻转特效的方法
Feb 17 Javascript
JS组件Bootstrap实现图片轮播效果
May 16 Javascript
JS验证全角与半角及相互转化的介绍
May 18 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 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
资料注册后发信小技巧
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
微信API接口大全
2015/04/15 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
php中的依赖注入实例详解
2019/08/14 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
跟随鼠标旋转的文字
2006/11/30 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
php register_shutdown_function函数详解
2017/07/23 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
答题辅助python代码实现
2018/01/16 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
浅谈flask源码之请求过程
2018/07/26 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
放飞理想演讲稿
2014/09/09 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
Python编程super应用场景及示例解析
2021/10/05 Python
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js