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基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
jqPlot Option配置对象详解
Jul 25 Javascript
Bootstrap每天必学之轮播(Carousel)插件
Apr 25 Javascript
JS 对象(Object)和字符串(String)互转方法
May 20 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
Bootstrap栅格系统简单实现代码
Mar 06 Javascript
在vue中读取本地Json文件的方法
Sep 06 Javascript
深入了解响应式React Native Echarts组件
May 29 Javascript
vue 实现特定条件下绑定事件
Nov 09 Javascript
详解webpack的文件监听实现(热更新)
Sep 11 Javascript
深入浅析React中diff算法
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
解析smarty模板中类似for的功能实现
2013/06/18 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python单链表实现代码实例
2013/11/21 Python
python中的yield使用方法
2014/02/11 Python
Python 序列的方法总结
2016/10/18 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
英国假发网站:Hothair
2018/02/23 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
暑期社会实践学生的自我评价
2014/01/09 职场文书
老同学聚会感言
2014/02/23 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
党员公开承诺书2015
2015/01/21 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫