前端react项目实现词云效果

引言: echarts词云效果使用,直接 ‘npm install echarts-wordcloud ’ ,默认加载的是最新版本依赖,那就你需要echarts更新到 5.0.1+ 的版本,如果你的词云效果实现有报错 …createTextStyle is not a function,你需要比对一下你的echarts版本和echarts-wordcloud依赖的版本是否兼容。我的示例使用的是4.9.0版本的echarts和1.1.3版本的echarts-wordcloud

npm install echarts --save
npm install --save echarts-for-react
npm install echarts-wordcloud@1.1.3   

项目效果:
在这里插入图片描述

页面组件完整代码:

import React from 'react';
import ReactEcharts from 'echarts-for-react';
import * as echarts from 'echarts';
import 'echarts-wordcloud';
import style from './style.less';

export const index = (props: any) => {
  const option = {
    series: [
      {
        type: 'wordCloud',
        gridSize: 2,
        sizeRange: [12, 50],
        rotationRange: [-90, 90],
        shape: 'pentagon',
        textStyle: {
          normal: {
            color: function() {
              return (
                'rgb(' +
                [
                  Math.round(Math.random() * 255),
                  Math.round(Math.random() * 255),
                  Math.round(Math.random() * 255),
                ].join(',') +
                ')'
              );
            },
          },
          emphasis: {
            shadowBlur: 10,
            shadowColor: '#333',
          },
        },
        data: [
          {
            name: 'Sam S Club',
            value: 10000,
          },
          {
            name: 'Macys',
            value: 6181,
          },
          {
            name: 'Amy Schumer',
            value: 4386,
          },
          {
            name: 'Jurassic World',
            value: 4055,
          },
          {
            name: 'Charter Communications',
            value: 2467,
          },
          {
            name: 'Chick Fil A',
            value: 2244,
          },
          {
            name: 'Planet Fitness',
            value: 1898,
          },
          {
            name: 'Pitch Perfect',
            value: 1484,
          },
          {
            name: 'Express',
            value: 1112,
          },
          {
            name: 'Home',
            value: 965,
          },
          {
            name: 'Johnny Depp',
            value: 847,
          },
          {
            name: 'Lena Dunham',
            value: 582,
          },
          {
            name: 'Lewis Hamilton',
            value: 555,
          },
          {
            name: 'KXAN',
            value: 550,
          },
          {
            name: 'Mary Ellen Mark',
            value: 462,
          },
          {
            name: 'Farrah Abraham',
            value: 366,
          },
          {
            name: 'Rita Ora',
            value: 360,
          },
          {
            name: 'Serena Williams',
            value: 282,
          },
          {
            name: 'NCAA baseball tournament',
            value: 273,
          },
          {
            name: 'Point',
            value: 273,
          },
          {
            name: 'Point Break',
            value: 265,
          },
        ],
      },
    ],
  };

  return (
    <div className={style.wordContainer}>
      <ReactEcharts
        option={option as any}
        notMerge
        lazyUpdate
        style={{ height: '100%', width: '100%' }}
      />
    </div>
  );
};

export default index;
前端React项目中,要实现在iOS上看视频时退出全屏但视频不暂停的效果,可以通过监听全屏状态的变化并适当处理视频播放来实现。以下是实现这一功能的基本步骤: 1. 使用HTML5的`<video>`标签播放视频,因为它支持iOS的全屏API。 2. 监听全屏状态变化的事件,比如使用`fullscreenchange`或`webkitfullscreenchange`事件。 3. 在事件处理函数中检查当前的全屏状态,可以使用`document.fullscreenElement`、`document.webkitFullscreenElement`等属性来获取当前是否处于全屏状态。 4. 根据全屏状态,决定是否暂停或继续播放视频。如果退出全屏时希望视频继续播放,那么不需要执行暂停操作。 5. 为视频元素添加适当的CSS样式,确保在全屏模式下视频能够正确显示。 示例代码如下: ```javascript // 假设有一个videoRef来引用视频元素 class VideoPlayer extends React.Component { constructor(props) { super(props); this.videoRef = React.createRef(); this.handleFullscreenChange = this.handleFullscreenChange.bind(this); } componentDidMount() { // 监听全屏变化事件 document.addEventListener('fullscreenchange', this.handleFullscreenChange); document.addEventListener('webkitfullscreenchange', this.handleFullscreenChange); } componentWillUnmount() { // 移除事件监听,防止内存泄漏 document.removeEventListener('fullscreenchange', this.handleFullscreenChange); document.removeEventListener('webkitfullscreenchange', this.handleFullscreenChange); } handleFullscreenChange() { const isFullScreen = !!( document.fullscreenElement || document.webkitFullscreenElement ); // 在这里处理退出全屏后的逻辑,比如重新开始播放 if (!isFullScreen) { // 假设视频是暂停的,重新播放 if (this.videoRef.current.paused) { this.videoRef.current.play(); } } } render() { return ( <video ref={this.videoRef} controls> <source src="your-video.mp4" type="video/mp4" /> 您的浏览器不支持 HTML5 video 标签。 </video> ); } } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值