成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

html5 - 在echarts3中怎么使用echarts2中的wordCloud

瀏覽:137日期:2022-06-23 18:34:11

問題描述

1.問題 項目中需要用到字符云 我在項目中導入的是echarts3 echarts3中沒有wordCloud 的api 同時 下載的echarts3中也沒有wordCloud.js 只有2中有wordCloud.js 不知道在echarts3中怎么使用echarts2中的wordCloud 主要是echarts2跟3還是有很大區別的 首先 導入方式不一樣 其次 api很多東西都不一樣 再者 我不能兩個echarts都導入吧2.報錯

html5 - 在echarts3中怎么使用echarts2中的wordCloud

3.希望 希望可以在這方面有經驗的大神可以給個解決方法 謝過

問題解答

回答1:

自己已解決 引入外部文件 jqcloud

/*! * jQCloud Plugin for jQuery * * Version 1.0.4 * * Copyright 2011, Luca Ongaro * Licensed under the MIT license. * * Date: 2013-05-09 18:54:22 +0200*/(function( $ ) { 'use strict'; $.fn.jQCloud = function(word_array, options) { // Reference to the container element var $this = this; // Namespace word ids to avoid collisions between multiple clouds var cloud_namespace = $this.attr(’id’) || Math.floor((Math.random()*1000000)).toString(36); // Default options value var default_options = { width: $this.width(), height: $this.height(), center: {x: ((options && options.width) ? options.width : $this.width()) / 2.0,y: ((options && options.height) ? options.height : $this.height()) / 2.0 }, delayedMode: word_array.length > 50, shape: false, // It defaults to elliptic shape encodeURI: true, removeOverflowing: true,isSelfColor:false,//是否自定義樣式isSelfRotate:false//是否自定義角度 }; options = $.extend(default_options, options || {}); // Add the 'jqcloud' class to the container for easy CSS styling, set container width/height $this.addClass('jqcloud').width(options.width).height(options.height); // Container’s CSS position cannot be ’static’ if ($this.css('position') === 'static') { $this.css('position', 'relative'); } var drawWordCloud = function() { // Helper function to test if an element overlaps others var hitTest = function(elem, other_elems) {// Pairwise overlap detectionvar overlapping = function(a, b) { if (Math.abs(2.0*a.offsetLeft + a.offsetWidth - 2.0*b.offsetLeft - b.offsetWidth) < a.offsetWidth + b.offsetWidth) { if (Math.abs(2.0*a.offsetTop + a.offsetHeight - 2.0*b.offsetTop - b.offsetHeight) < a.offsetHeight + b.offsetHeight) { return true; } } return false;};var i = 0;// Check elements for overlap one by one, stop and return false as soon as an overlap is foundfor(i = 0; i < other_elems.length; i++) { if (overlapping(elem, other_elems[i])) { return true; }}return false; }; // Make sure every weight is a number before sorting for (var i = 0; i < word_array.length; i++) {word_array[i].weight = parseFloat(word_array[i].weight, 10); } // Sort word_array from the word with the highest weight to the one with the lowest word_array.sort(function(a, b) { if (a.weight < b.weight) {return 1;} else if (a.weight > b.weight) {return -1;} else {return 0;} }); var step = (options.shape === 'rectangular') ? 18.0 : 2.0, already_placed_words = [], aspect_ratio = options.width / options.height; // Function to draw a word, by moving it in spiral until it finds a suitable empty place. This will be iterated on each word. var drawOneWord = function(index, word) {// Define the ID attribute of the span that will wrap the word, and the associated jQuery selector stringvar word_id = cloud_namespace + '_word_' + index, word_selector = '#' + word_id, angle = 6.28 * Math.random(), radius = 0.0, // Only used if option.shape == ’rectangular’ steps_in_direction = 0.0, quarter_turns = 0.0, weight = 5, custom_class = '', inner_html = '', word_span;// Extend word html options with defaultsword.html = $.extend(word.html, {id: word_id});// If custom class was specified, put them into a variable and remove it from html attrs, to avoid overwriting classes set by jQCloudif (word.html && word.html['class']) { custom_class = word.html['class']; delete word.html['class'];}// Check if min(weight) > max(weight) otherwise use defaultif (word_array[0].weight > word_array[word_array.length - 1].weight) { // Linearly map the original weight to a discrete scale from 1 to 10 weight = Math.round((word.weight - word_array[word_array.length - 1].weight) / (word_array[0].weight - word_array[word_array.length - 1].weight) * 9.0) + 1;}word_span = $(’<span>’).attr(word.html).addClass(’w’ + weight + ' ' + custom_class);// Append link if word.url attribute was setif (word.link) { // If link is a string, then use it as the link href if (typeof word.link === 'string') { word.link = {href: word.link}; } // Extend link html options with defaults if ( options.encodeURI ) { word.link = $.extend(word.link, { href: encodeURI(word.link.href).replace(/’/g, '%27') }); } inner_html = $(’<a>’).attr(word.link).text(word.text);} else { inner_html = word.text;}word_span.append(inner_html);// Bind handlers to wordsif (!!word.handlers) { for (var prop in word.handlers) { if (word.handlers.hasOwnProperty(prop) && typeof word.handlers[prop] === ’function’) { $(word_span).bind(prop, word.handlers[prop]); } }}$this.append(word_span);var width = word_span.width(), height = word_span.height(), left = options.center.x - width / 2.0, top = options.center.y - height / 2.0;// Save a reference to the style property, for better performancevar word_style = word_span[0].style;word_style.position = 'absolute';word_style.left = left + 'px';word_style.top = top + 'px';word_style.transform= '';word_style.color= '';while(hitTest(word_span[0], already_placed_words)) { // option shape is ’rectangular’ so move the word in a rectangular spiral if (options.shape === 'rectangular') { steps_in_direction++; if (steps_in_direction * step > (1 + Math.floor(quarter_turns / 2.0)) * step * ((quarter_turns % 4 % 2) === 0 ? 1 : aspect_ratio)) { steps_in_direction = 0.0; quarter_turns++; } switch(quarter_turns % 4) { case 1:left += step * aspect_ratio + Math.random() * 2.0;break; case 2:top -= step + Math.random() * 2.0;break; case 3:left -= step * aspect_ratio + Math.random() * 2.0;break; case 0:top += step + Math.random() * 2.0;break; } } else { // Default settings: elliptic spiral shape radius += step; angle += (index % 2 === 0 ? 1 : -1)*step; left = options.center.x - (width / 2.0) + (radius*Math.cos(angle)) * aspect_ratio; top = options.center.y + radius*Math.sin(angle) - (height / 2.0); } word_style.left = left + 'px'; word_style.top = top + 'px'; //判斷是否隨機角度 if(default_options.isSelfRotate==true){ word_style.transform='rotate('+parseInt(Math.random()*40-10)+'deg)';//隨機角度 } //判斷是否自定義樣式 if(default_options.isSelfColor==true){ word_style.color=’rgb(’ + [ Math.round(Math.random() * 248), 174, 63].join(’,’) + ’)’;//隨機顏色--橘色系 }}// Don’t render word if part of it would be outside the containerif (options.removeOverflowing && (left < 0 || top < 0 || (left + width) > options.width || (top + height) > options.height)) { word_span.remove() return;}already_placed_words.push(word_span[0]);// Invoke callback if existingif ($.isFunction(word.afterWordRender)) { word.afterWordRender.call(word_span);} }; var drawOneWordDelayed = function(index) {index = index || 0;if (!$this.is(’:visible’)) { // if not visible then do not attempt to draw setTimeout(function(){drawOneWordDelayed(index);},10); return;}if (index < word_array.length) { drawOneWord(index, word_array[index]); setTimeout(function(){drawOneWordDelayed(index + 1);}, 10);} else { if ($.isFunction(options.afterCloudRender)) { options.afterCloudRender.call($this); }} }; // Iterate drawOneWord on every word. The way the iteration is done depends on the drawing mode (delayedMode is true or false) if (options.delayedMode){drawOneWordDelayed(); } else {$.each(word_array, drawOneWord);if ($.isFunction(options.afterCloudRender)) { options.afterCloudRender.call($this);} } }; // Delay execution so that the browser can render the page before the computatively intensive word cloud drawing setTimeout(function(){drawWordCloud();}, 10); return $this; };})(jQuery);

標簽: word
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩av成人高清| 国产成人免费xxxxxxxx| 亚洲一区中文在线| 成人免费观看男女羞羞视频| 久久av一区二区| 日韩欧美一级片| 亚洲高清不卡在线观看| 不卡视频一二三| 先锋a资源在线看亚洲| 国产亚洲短视频| 国产精品中文字幕欧美| 欧美日韩不卡一区| 亚洲午夜电影在线观看| 国产一区二区无遮挡| 精品国产乱码91久久久久久网站| 奇米在线7777在线精品| 韩国久久久久| 欧美老女人第四色| 香蕉成人啪国产精品视频综合网| 国产精品激情电影| 欧美一区二区三区的| 青青草国产成人99久久| 亚洲一区三区电影在线观看| 欧美午夜不卡在线观看免费| 亚洲一区二区三区三| 成年人国产精品| 欧美另类久久久品| 日韩国产精品久久| 亚洲一区二区三区高清| 亚洲品质自拍视频网站| av电影在线观看一区| 欧美日韩成人综合在线一区二区| 婷婷成人激情在线网| 国产精品久久九九| 亚洲精品欧美在线| 亚洲视频碰碰| 国产精品美女一区二区三区| 欧美粗暴jizz性欧美20| 久久伊人中文字幕| 国产成人免费xxxxxxxx| 欧美日韩日日骚| 秋霞成人午夜伦在线观看| 美玉足脚交一区二区三区图片| 亚洲欧洲精品成人久久奇米网| 欧美激情视频一区二区三区免费| 亚洲精品在线免费播放| 国产乱对白刺激视频不卡| 欧美日精品一区视频| 蜜桃视频在线观看一区二区| 欧美在线小视频| 久久成人免费网站| 欧美专区日韩专区| 一区二区三区日韩| 亚洲国产网站| 国产精品麻豆一区二区| 99精品视频一区二区三区| 欧美私模裸体表演在线观看| 亚洲国产一区二区三区| 亚洲成av人影院| 久久野战av| 国产成人av一区二区三区在线观看| 日韩欧美一区在线| 欧美激情视频一区二区三区在线播放| 一区二区三区日韩精品视频| 欧美色图天堂网| 91视频观看免费| 亚洲一区二区综合| 欧美日韩视频在线第一区 | 国产精品激情电影| 午夜久久久影院| 欧美一区二区私人影院日本| 国产精品v欧美精品v日韩| 亚洲国产中文字幕| 91精品久久久久久久91蜜桃 | 欧美性色综合| 日本系列欧美系列| 日韩午夜在线影院| 激情成人亚洲| 精品亚洲免费视频| 2021中文字幕一区亚洲| 国产亚洲在线观看| 国产99久久久久久免费看农村| 中文字幕一区二区三区在线观看| 日本精品一区二区三区四区的功能| 不卡的av电影在线观看| 亚洲人成网站影音先锋播放| 在线观看亚洲精品| 欧美午夜一区| 国产专区欧美精品| 亚洲三级电影网站| 91精品欧美福利在线观看| 日韩亚洲在线| 成人网男人的天堂| 亚洲电影在线免费观看| 欧美电视剧免费观看| 中文亚洲字幕| 成人在线综合网站| 午夜欧美在线一二页| 久久久久久久网| 一本色道久久综合亚洲精品按摩| 91亚洲精品乱码久久久久久蜜桃| 日韩精品电影在线观看| 中文字幕免费一区| 欧美日韩精品三区| 亚洲高清在线观看一区| 国产成人av一区二区三区在线| 亚洲国产成人porn| 久久免费美女视频| 欧美在线观看一区| 一本色道久久综合亚洲精品不卡| 成人午夜在线免费| 日韩和欧美一区二区| 国产精品人成在线观看免费| 69堂成人精品免费视频| 中文欧美日韩| 97精品久久久午夜一区二区三区| 免费观看久久久4p| 亚洲免费伊人电影| 久久久一区二区三区捆绑**| 欧美在线观看一区| 亚洲国产一区二区三区高清| hitomi一区二区三区精品| 日本aⅴ亚洲精品中文乱码| 日韩理论电影院| 日韩精品一区二区三区蜜臀| 色婷婷亚洲婷婷| 精品成人久久| av高清久久久| 国产精品自拍av| 日韩激情中文字幕| 亚洲日本一区二区| 精品国产青草久久久久福利| 欧美色视频在线观看| 美女日韩在线中文字幕| 狠狠色综合色区| 国产91对白在线观看九色| 午夜av一区二区| 亚洲欧美国产三级| 久久久久国产精品免费免费搜索| 欧美日韩亚洲综合在线| 色综合久久久久综合体| 激情综合久久| 91丝袜国产在线播放| 国产剧情一区二区| 日本人妖一区二区| 亚洲日穴在线视频| 中文字幕不卡在线观看| 久久亚洲精品小早川怜子| 日韩欧美国产三级| 欧美妇女性影城| 欧美日本国产视频| 色噜噜偷拍精品综合在线| 亚洲一区二区三区免费观看| 伊人精品视频| 欧美日韩成人| 91女厕偷拍女厕偷拍高清| 盗摄精品av一区二区三区| 激情久久五月天| 欧美bbbbb| 蜜桃视频一区二区三区| 婷婷综合另类小说色区| 亚洲一区二区三区四区中文字幕| 亚洲人成网站色在线观看| 国产精品美女www爽爽爽| 国产日产亚洲精品系列| 精品91自产拍在线观看一区| 欧美成人一区二区三区在线观看| 91精品欧美综合在线观看最新| 欧美日韩一区二区三区高清 | 国产欧美精品一区二区色综合| 久久九九久精品国产免费直播| 亚洲精品一区二区精华| 2022国产精品视频| 国产亚洲精品免费| 国产偷国产偷亚洲高清人白洁| 国产丝袜欧美中文另类| 久久精品亚洲国产奇米99| 久久午夜电影网| 国产三级精品在线| 国产精品入口麻豆原神| 亚洲图片你懂的| 夜夜嗨av一区二区三区中文字幕| 亚洲狼人国产精品| 亚洲一区电影777| 天堂在线一区二区| 免费观看成人av| 国产一区在线精品| 成人免费视频一区二区| 99久久精品国产导航| 91浏览器在线视频| 欧美精品一区在线| 亚洲精品1区2区| 欧美亚洲三级| 欧美亚洲高清一区二区三区不卡| 欧美在线|欧美| 日韩一区二区三区四区五区六区| 精品国产91乱码一区二区三区| 久久久99精品免费观看不卡| 成人欧美一区二区三区1314| 亚洲综合999|