前端3D词云

安装TagCloud库

npm i TagCloud -S

初始化

    const container = '.tagcloud';
    const options = {
      useContainerInlineStyles: false,
      radius: 200,
      keep: true,
      // 词云动画速度模式 slow, normal, fast
      maxSpeed: 'normal',
      initSpeed: 'slow',
    };
    texts = ['txt1', 'txt2']
    tagCloud = TagCloud(container, texts, options);

img

修改文字颜色和大小

function RandomNumBoth(Min: number, Max: number) {
  var Range = Max - Min;
  var Rand = Math.random();
  var num = Min + Math.round(Rand * Range); //四舍五入
  return num;
}

const items: any = document.getElementsByClassName('tagcloud--item')
for (const item of items) {
  item.style.color = ['#20ACC4', '#E79C28'][RandomNumBoth(0, 1)]
  item.style.fontSize = ['12px', '16px', '20px', '28px'][RandomNumBoth(0, 1)]
}

img

给文字添加点击事件

    let rootEl: any = document.querySelector('.tagcloud');
    rootEl.addEventListener('click', function clickEventHandler(e: any) {
      if (e.target.className === `tagcloud--item ${style.tagcloud_item}`) {
        onChange?.({keyword: e.target.innerText})
      }
    });

当鼠标移上去时候暂停滚动,鼠标移除时候重新开始滚动

  rootEl.addEventListener('mouseover', function clickEventHandler(e: any) {
    if (e.target.className === `tagcloud--item ${style.tagcloud_item}`) {
      tagCloud.pause()
    }
  });
  rootEl.addEventListener('mouseout', function clickEventHandler(e: any) {
    if (e.target.className === `tagcloud--item ${style.tagcloud_item}`) {
      tagCloud.resume()
    }
  });

img

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值