sashomaga

Generate tags with different font-size

Apr 15th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* By given minFontSize and maxFontSize, generate the tags with different font-size, depending on the number of occurrences */
  2.  
  3. function generateTagCloud() {
  4.              'use strict';
  5.  
  6.              var tags = ["cms", "javascript", "js", "ASP.NET MVC", ".net", ".net", "css", "wordpress", "xaml", "js", "http", "web", "asp.net",
  7.                  "asp.net MVC", "ASP.NET MVC", "wp", "javascript", "js", "cms", "html", "javascript", "http", "http", "cms"];
  8.  
  9.              var minFontSize = document.getElementById("min-font-size").value | 0;
  10.              var maxFontSize = document.getElementById("max-font-size").value | 0;
  11.  
  12.              // use dictionary to count elements
  13.              var dict = {};
  14.              for (var i = 0; i < tags.length; i++) {
  15.                  if (tags[i] in dict) {
  16.                      dict[tags[i]]++;
  17.                  } else {
  18.                      dict[tags[i]] = 1;
  19.                  }
  20.              }
  21.  
  22.              // use array of arrays to sort
  23.              var sortable = [];
  24.              for (var key in dict) {
  25.                  sortable.push([key, dict[key]]);
  26.              }
  27.              sortable.sort(function (a, b) { return a[1] - b[1]; });
  28.  
  29.              var diapason = maxFontSize - minFontSize;
  30.              var rate = diapason / sortable[sortable.length - 1][1];
  31.              var documenyFragment = document.createDocumentFragment();
  32.  
  33.              for (var i = 0; i < sortable.length; i++) {
  34.                  var span = document.createElement("span");
  35.  
  36.                  span.innerHTML = sortable[i][0];
  37.                  span.style.fontSize = (minFontSize + rate * sortable[i][1]) + "px";
  38.                  span.style.display = "block";
  39.                  documenyFragment.appendChild(span);
  40.              }
  41.  
  42.              document.getElementById("container").appendChild(documenyFragment);            
  43.          }
Advertisement
Add Comment
Please, Sign In to add comment