0

0

如何利用react 实现banner轮播效果

云罗郡主

云罗郡主

发布时间:2019-01-21 10:27:48

|

4182人浏览过

|

来源于csdn

原创

最近在看react , jsx的语法一开始看起来确实不习惯,但是确实比较灵活

运行效果:

20190114161819995.png

import React from 'react';
// import ShadowDOM from 'react-shadow';
import './index.css';
let timeId = null;  // 循环定时的状态
export default class Index extends React.Component {
  constructor () {
    super();
    this.state = {
      timeId: null,
      list: [],
      listClone: [],
      current: 0
    };
  }
  // 删除列表项目
  deleItem (title, date, index) {
    let data = [...this.state.list];
    data.splice(index, 1);
    this.setState({
      list: data
    });
    alert('删除成功!');
  }
  // 点击状态点切换状态
  toggleState (item, index) {
    let data = this.state.listClone;
    this.setState({
      list: data[index],
      current: index
    });
  }
  // 鼠标移入状态点
  stateMouseenter () {
    clearInterval(timeId);
  }
  // 鼠标移出状态点
  stateMouseleave () {
    this.loop(3000); 
  }
  // 轮播事件
  loop (speed) {
    timeId = setInterval(() => {
      let index = this.state.current;
      let data = this.state.listClone;
      if (index < this.state.list.length - 1) {
        index ++;
        this.setState({
          list: data[index],
          current: index
        });
      } else {
        index = 0;
        this.setState({
          list: data[index],
          current: index
        });
      }
    }, speed);
  }
  render () {
    let data = this.state.list;
    let active = '';
    // 数据列表
    let Li = data.map((item, index) => {
      return (
        
  • {item.title + '==' + index + new Date().getTime()} {item.date}
  • ); }); // 状态点 let span = this.state.listClone.map((item, index) => { index === this.state.current ? active = 'active' : active = ''; return ( {index + 1} ); }); return (

    {span}

      {Li}
    ); } componentWillMount () { // 页面加载的数据 let list = [ { date: '2018-02-12 12:54:52', title: '● 今天深圳市天气很好,很适合外出旅游1' }, { date: '2018-02-12 12:54:52', title: '● 今天深圳市天气很好,很适合外出旅游2' }, { date: '2018-02-12 12:54:52', title: '● 今天深圳市天气很好,很适合外出旅游3' }, { date: '2018-02-12 12:54:52', title: '● 今天深圳市天气很好,很适合外出旅游4' }, { date: '2018-02-12 12:54:52', title: '● 今天深圳市天气很好,很适合外出旅游5' } ]; this.setState({ list: [...list], listClone: [[...list], [...list], [...list], [...list], [...list]] }); this.loop(3000); } componentDidMount () { } componentDidUpdate () { } componentWillUnmount () {} };

    css:

    Videoleap
    Videoleap

    Videoleap是一个一体化的视频编辑平台

    下载
    .list-item {
      width: 600px;
      padding: 10px;
      margin: 40px auto;
      background: #ccc;
      border: 1px solid #eee;
    }
    .list-item li {
      margin: 10px 0;
      font-size: 14px;
      color: #333;
      text-align: left;
    }
    .list-item li span:nth-child(2) {
      float: right;
    }
    .item-state {
      text-align: right;
    }
    .item-state span {
      display: inline-block;
      height: 20px;
      width: 20px;
      color: #333;
      line-height: 20px;
      text-align: center;
      background: #eee;
      border-radius: 20px;
      margin-left: 5px;
      cursor: pointer;
    }
    .item-state span.active {
      background: red;
    }

    以上就是对如何利用react 实现banner轮播效果的全部介绍,希望大家可以有所收获,更多React视频教程请关注PHP中文网。

    相关专题

    更多
    php源码安装教程大全
    php源码安装教程大全

    本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

    7

    2025.12.31

    php网站源码教程大全
    php网站源码教程大全

    本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

    4

    2025.12.31

    视频文件格式
    视频文件格式

    本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

    7

    2025.12.31

    不受国内限制的浏览器大全
    不受国内限制的浏览器大全

    想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

    7

    2025.12.31

    出现404解决方法大全
    出现404解决方法大全

    本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

    42

    2025.12.31

    html5怎么播放视频
    html5怎么播放视频

    想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

    4

    2025.12.31

    关闭win10系统自动更新教程大全
    关闭win10系统自动更新教程大全

    本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

    3

    2025.12.31

    阻止电脑自动安装软件教程
    阻止电脑自动安装软件教程

    本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

    3

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    2

    2025.12.31

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    React 教程
    React 教程

    共58课时 | 3.1万人学习

    国外Web开发全栈课程全集
    国外Web开发全栈课程全集

    共12课时 | 0.9万人学习

    React核心原理新老生命周期精讲
    React核心原理新老生命周期精讲

    共12课时 | 1万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号