首页>建站相关>jQCloud 一个基于jquery的词云生成插件

jQCloud 一个基于jquery的词云生成插件

jQCloud 是一个基于 jQuery 的插件,用于生成美观且纯 HTML + CSS 的词云和标签云。使用这个插件需要引入两个文件,分别jQCloud 的 js 依赖与 css 依赖,但是由于其默认的css非常的简单,且预设的颜色不一定让用户满意,所以完全可以只引入js文件,将其css文件整段复制进自己的 style.css 里进行修改。以下是一个测试用例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQCloud Example</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqcloud/1.0.4/jqcloud.min.css">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqcloud/1.0.4/jqcloud-1.0.4.min.js"></script>
</head>
<body>
    <div id="wordcloud" style="width: 600px; height: 400px;"></div>

    <script>
        $(document).ready(function() {
            // 词频数据
            var wordArray = [
                {text: "JavaScript", weight: 10},
                {text: "Python", weight: 8},
                {text: "Java", weight: 7},
                {text: "C++", weight: 6},
                {text: "PHP", weight: 5},
                {text: "Ruby", weight: 4},
                {text: "Go", weight: 3},
                {text: "Swift", weight: 2},
                {text: "Kotlin", weight: 1}
            ];

            // 使用 jQCloud 生成词云
            $('#wordcloud').jQCloud(wordArray);
        });
    </script>
</body>
</html> 

渲染造成的卡顿

当需要生成的词过多的时候,或者将jQCloud集成进页面,而页面有其他动画效果的时候,有时候会造成动画效果的卡顿。这个时候我们需要来调整一下它的设置参数:

width (数字):词云容器元素的宽度。默认为原始宽度。
height (数字):词云容器元素的高度。默认为原始高度。
center (对象):词云中心的 x 和 y 坐标,相对于容器元素(例如:{x: 300, y: 150})。默认为容器元素的中心。
afterCloudRender (函数):整个云渲染完成后调用的回调函数。
delayedMode (布尔值):如果为 true,单词将一个接一个地渲染,每个单词之间有微小延迟。这可以防止在渲染大量单词时浏览器冻结。如果为 false,云将一次性渲染。默认为 true,如果单词数量超过 50。
shape (字符串):云的形状。默认为椭圆形,但可以设置为 "rectangular" 以绘制矩形形状的云。
removeOverflowing (布尔值):如果为 true,会移除溢出容器的单词。默认为 true。

比如上面提到的卡顿问题,我们可以将delayedMode设置为true来避免一次性抛出过多数据,如果想在渲染完成后给容器元素修改或增加类名,则需要用到afterCloudRender这个属性来设置回调函数。(回调这个词曾经困扰了博主很久,其实就是在让jqcloud把本职工作做完以后,再顺手调个属性,事情虽小,但由它来做,时间上才无缝)

回调函数的格式:

$('#wordcloud').jQCloud(hotwords, {
    delayedMode:true,
    height: 180,
    weight: {
        from: 0.8,
        to: 0.9
    },
    afterCloudRender:function(){
    $('#wordcloud').addClass('lazyloaded');
    }
});

这个回调函数的作用是,在渲染完成后,给元素添加一个名为 lazyloaded 的新类名。

标签: jquery

移动端可扫我直达哦~

推荐阅读

jquery 2024-03-23

利用Jquery实现点击元素后复制被点击元素的标签

在博客上放了一个“Fontawesome4.7.0图标一览”的页面,一直觉得功能太过于单一。自己使用当中,遇到合适的图标,往往还需要去获取它的html标签属性。所以就想给这个页面增加一个点击后复制被点击元素标签的功能。获取标签的相关指...

建站相关 jquery

jquery 2023-12-21

为当前页面生成一个二维码以便于移动端访问

想要在手机上上访问pc端的一个页面,现在很常见的做法是提供一个二维码,让用户通过手机扫码软件识别后用浏览器打开,这样就实现了页面地址数据的传输。某天做完一个页面后,想在手机上看看效果,一边手动输入页面地址,一边就萌生了为站点添加一个二...

建站相关 jquery

jquery 2023-06-09

Jquery幻灯插件Slidesjs图片宽高异常与引用文件顺序

遇到一个困扰多日的问题,在页面中生成了一个幻灯片组件,正常载入的时候是挺正常的,但是偶尔多刷新几次,图片的宽高会出现异常,离谱的是幻灯容器的宽度正常,图片大幅度溢出,而按钮位置无误。以上的bug描述对解决问题毫无帮助,幻灯容器的宽高是...

建站相关 jquery

jquery 2023-05-10

Jquery实现wordpress菜单的鼠标跟随效果

看别人家的博客,菜单栏下有一条装饰线,会根据鼠标悬停的位置来回滑动,且根据滑动距离长短,有明显的速度变化。一直心向往之,正好在学习wordpress的wp_nav_menu函数,顺便尝试一下实现这个效果。看过张戈博客主题的元素,似乎是...

建站相关 jquery

jquery 2023-05-05

Jquery实现wordpress彩色标签云

想在wordpress中实现一组彩色的标签,网上相关的实现教程很多,这里就不赘述了。之所以考虑用Jquery来实现,是基于服务器性能的考虑。因为博主的服务器是2h1g的低配版本,这个配置相对于访问用户的主机配置,无论是移动端还是电脑端...

建站相关 jquery

jquery 2023-05-04

Jquery添加与删除元素的class名

尝试了一下在新的主题中使用jquery,绑定点击动作来添加与删除元素的类名,使用下来感觉确实非常方便。虽然随着各种前段框架的流行,jquery的影响力逐渐减退,但对于博主这种菜鸟来说,还是觉得惊为天人。用jquery添加classna...

建站相关 jquery

jquery 2023-04-15

利用jquery lazyload插件回调函数修改类名

准备在主题中引用jquery,所以lazyload插件也准备用jquery的插件,使用上同lazysizes略有不同,默认并不能在成功加载图片之后修改图片的类名。但是lazyload贴心的提供了回调函数,允许我们自由的修改。引用插件字...

建站相关 jquery

jquery 2022-12-30

Jquery幻灯插件nivo slider使用详解

学习slidesjs幻灯插件的时候翻到的这个,比起slidesjs,nivo slider提供了更多的动画效果,更为丰富的自定义选项。当然,对于一个站点来说,丰富的内容才是关键,过度追求华丽的效果,特别对于带宽较小的服务器来说,无异于...

建站相关 jquery