How to Create Custom Tooltips - javascript

I am extremely new to HTML, JavaScript, and any other coding-related matters. However, I have been relying on tutorials to get a website up for a school project. I managed to use the jQuery library to get my line graph up (from chart.js), but I would also like to be able to allow for tooltips over my content. (specifically, this one) I am having trouble to allow for the tooltips to show up, and I'm wondering how I may fix this, as I am unable to find any tutorials. I previously tried using chart.js together with powertip.js as well, which is another jquery plugin.
Here is my code:
<head>
<title>get1030 project</title>
<style>
#font-face {
font-family: "brandon";
src: url('Brandon_reg.otf') format('opentype');
}
body {
font-family: "brandon", helvetica, sans-serif;
background-color: #f3f3f3;
}
#container {
max-width: 900px;
margin: 0 auto;
background-color: #fff;
padding: 32px;
}
header {
background-color: #336699;
height: 150px;
padding: 4px;
}
header h1 {
text-transform: lowercase;
text-align: center;
color: #fff;
line-height: 60px;
}
header h2 {
text-transform: lowercase;
line-height: 2px;
font-size: 18px;
text-align: center;
color: #fff;
}
nav {
padding: 5px 0 5px 0;
text-align: center;
line-height: 35px;
background-color: #818181;
}
nav ul {
margin-top: 20px;
list-style-type: none;
padding: 0;
margin: 0;
position: relative;
}
nav ul li {
display: inline-block;
padding: 0 22px 0 22px;
font-size: 17px;
}
nav a {
text-decoration: none;
color: #fff;
padding: 8px;
font-variant: small-caps;
}
nav a:hover {
color: #336699;
}
nav ul li:hover ul{
display: block;
}
nav ul ul {
display: none;
position: absolute;
background-color: #333;
margin-left: -33px;
}
nav ul ul li {
display: block;
font-size: 15px;
}
#linechart1 {
position: relative;
left: 40px;
}
#legend ul {
list-style: none;
font-size: 12px;
}
#legend ul li {
display: inline;
padding: 13px;
}
#graphtitle {
position: relative;
left: 40px;
text-decoration: underline;
}
#linechart1 {
position: relative;
left: 40px;
}
#legend ul {
list-style: none;
font-size: 12px;
}
#legend ul li {
display: inline;
padding: 13px;
}
h3 {
margin-left: 40px;
}
article {
margin-left: 40px;
margin-right: 40px;
}
</style>
<script src="jquery-2.2.1.min.js"></script>
<script src="Chart.js"></script>
<script src="html5tooltips.1.4.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="html5tooltips.animation.css" />
<link rel="stylesheet" type="text/css" href="html5tooltips.css" />
</head>
<body>
<div id="container">
<header>
<h1>stereotypes of women in popular music lyrics</h1>
<h2>a digital humanities project</h2>
</header>
<nav>
<ul>
<li>home</li><li>
overview</li><li>
stereotypes
<ul>
<li>sex objects</li>
<li>emotional/weak</li>
<li>femme fatales</li>
<li>toxic</li>
</ul>
</li><li>
against the stereotype</li><li>
references</li>
</ul>
</nav>
<h3>methodology:</h3>
<article>
The lyrics of the top 40 songs of each year over the past decade (2007-2016) were reviewed to identify several common portrayals of women. The top 40 songs (insert tool tip or popup) was retrieved from <span data-tooltip="Refresh" data-tooltip-stickto="right" data-tooltip-color="bamboo" data-tooltip-animate-function="foldin">refresh</span> (pop up for billboard) year-end charts (charting methods) of the 'Hot 100' songs; except for the year 2016, where the chart for the week of March 26 2016 was used.
<br><br>
</article><br>
<div id="graphtitle">
<strong>top 40s over the past 10 years</strong>
</div><br>
<div style="width: 100%; height: 100%;">
<canvas id="linechart1" width="800" height "1500""></canvas>
</div>
<div id="legend"></div>
<script>
$(function () {
var data = {
labels: ["2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015",
"2016"],
datasets: [
{
label: "women as femme fatales",
fillColor: "rgba(255, 229, 229, 0.2)",
strokeColor: "#ffcccc",
pointColor: "#ffb3b3",
pointStrokeColor: "#994D4D",
pointHighlightFill: "#fff",
pointHighlightStroke: "#ffb3b3",
data: [3, 6, 5, 3, 8, 1, 1, 6, 4, 2]
},
{
label: "women as emotional and weak",
fillColor: "rgba(229, 255, 229, 0.2)",
strokeColor: "#ccffcc",
pointColor: "#b3ffb3",
pointStrokeColor: "#4D994D",
pointHighlightFill: "#fff",
pointHighlightStroke: "#b3ffb3",
data: [4, 6, 5, 6, 3, 4, 4, 4, 3, 8]
},
{
label: "women as men's possessions/sex objects",
fillColor: "rgba(255, 247, 229, 0.2)",
strokeColor: "#ffeecc",
pointColor: "#ffe6b3",
pointStrokeColor: "#99804D",
pointHighlightFill: "#fff",
pointHighlightStroke: "#ffe6b3",
data: [10, 9, 11, 8, 8, 7, 7, 8, 10, 13]
},
{
label: "women as strong and independent",
fillColor: "rgba(229, 247, 255, 0.2)",
strokeColor: "#cceeff",
pointColor: "#b3e6ff",
pointStrokeColor: "#4D8099",
pointHighlightFill: "#fff",
pointHighlightStroke: "#b3e6ff",
data: [2, 3, 2, 1, 5, 5, 2, 5, 2, 1]
},
{
label: "women as toxic",
fillColor: "rgba(238, 229, 255, 0.2)",
strokeColor: "#ddccff",
pointColor: "#ccb3ff",
pointStrokeColor: "#664D99",
pointHighlightFill: "#fff",
pointHighlightStroke: "#ccb3ff",
data: [0, 0, 0, 0, 1, 0, 1, 0, 1, 1]
}
]
};
var option = {
pointDot : true,
scaleGridLineWidth : 1,
};
var ctx = $("#linechart1").get(0).getContext("2d");
var myLineChart = new Chart(ctx).Line(data, option);
document.getElementById('legend').innerHTML = myLineChart.generateLegend();
});
html5tooltips({
animateFunction: "spin",
color: "bamboo",
contentText: "Refresh",
stickTo: "right",
targetSelector: "#refresh"
});
</script>
<br>
<article>
As seen in the graph above, the number of songs that feature the sexual objectification of women is consistently the highest in the top 40s over the past ten years.
</article>
</body>
According to the README file for html5tooltip.js,
this is what I am supposed to do, but the tooltip does not show up
Thank you in advance, and I am really sorry if this is not clear! I have been spending hours on this.

Try changing your span tag by giving a id="refresh"
<span id="refresh" data-tooltip="Refresh" data-tooltip-stickto="right" data-tooltip-color="bamboo" data-tooltip-animate-function="foldin">refresh</span>
working fiddle - https://jsfiddle.net/Lcrgohvg/

Related

ChartJS Data-label cropped

I have a line chartJS chart with the datalabel plugin but the datalabel is cropped by the border of the canvas, is there a way to increase its z-index or something like that?
For example in this code (a cleaned-up version of the real code), I'm supposed to have 1234 as the last value but it only shows 12, and even 3 is cropped. I would like to display it on top of the white border or maybe translate it a few pixels to the left automatically if it can't fit here (I don't care if a bit of the number border is cropped while the number isn't)
Chart.register(ChartDataLabels); // Import the data-labels plugin
graphItop4 = new Chart(document.getElementById("mois"), {
type: "line",
data: {
labels: [1, 2],
datasets: [{
label: "1",
fill: true,
data: [0, 1234],
backgroundColor: "rgba(0, 0, 255, 0.2)",
borderColor: "blue",
borderWidth: 1,
datalabels: {
align: 'start',
}
},
]
},
options: {
plugins: {
datalabels: {
backgroundColor: function(context) {
return context.dataset.backgroundColor.replace("0.2", "0.5");
},
borderRadius: 100,
color: 'white',
font: {
weight: 'bold',
size: '15'
},
formatter: Math.round,
padding: 5,
}
},
},
})
body {
font-family: "Arial", Helvetica, sans-serif;
display: flex;
margin: 18px;
padding: 0;
background-color: #ccc;
}
.case {
position: relative;
padding: 10px;
text-align: center;
border-radius: 10px;
min-height: 240px;
background-color: #fff;
}
h2 {
font-size: 1.4em;
margin: 0;
padding: 10px 20px;
border-radius: 10px;
background-color: lightgrey;
}
<div class="case">
<h2>Mois</h2>
<div>
<canvas height="270" id="mois" width="600"></canvas>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js#3.7.1/dist/chart.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels#2.0.0/dist/chartjs-plugin-datalabels.min.js"></script>

Javascript loop ISSUE on iteration add blank div if next result not match to current result every 6 count

In want to achieve javascript loop as my winning results. The correct example is the below preview.
enter image description here
But my result is different I want to know what would be the best ways to achieved the right result using loop.
enter image description here
I want to achieved every column of 6 records
if the next record is not match to current record it will draw and blank div. If result exceed on the 7th result or so, it will continue create a
L line.
var results = [{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "red",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "blue",
},
{
"winner": "red",
},
{
"winner": "blue",
},
{
"winner": "blue",
}
];
var htmlData = '';
var htmlHistory = $('.results');
for (var i = 0; i < results.length; i++) {
htmlData += '<div class="item ' + results[i].winner + '"></div>';
}
htmlHistory.html(htmlData);
.results {
display: flex;
flex-direction: column;
flex-wrap: wrap;
align-content: flex-start;
height: 192px;
overflow-x: scroll;
overflow-y: hidden;
background-size: 32px 32px;
background-image: linear-gradient(to right, lightgrey 1px, transparent 1px), linear-gradient(to bottom, lightgrey 1px, transparent 1px);
background-repeat: repeat;
background-attachment: local;
background-color: white;
line-height: normal;
text-align: start;
}
.results .item {
flex: 1 1;
-webkit-flex: 1 1 100%;
width: 15px;
height: 15px;
max-width: 20px;
max-height: 10px;
margin: 1px;
border-style: solid;
border-width: 8px;
border-radius: 15px;
box-shadow: 1px 2px 2px #888888;
}
.item.red {
border-color: #B31013;
}
.item.blue {
border-color: blue;
}
.blank_result {
width: 32px;
height: 32px;
border-color: transparent;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="results"></div>

JavaScript Chess Board using DOM

Hello guys I've recently started doing a chess application and I got everything set up except for the GUI. For some reason I can't get the tiles for the board to display and I don't know why. (Speculation) I think my problem has something to do with my usage of the DOM. Unfortunately for me, I've been trying to solve it for days now with no success. Could someone please help and enlighten me on this issue might be resolved because I don't know what I am missing at this point, although I suspect it is something very simple. Here is the code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chess Game</title>
<script type="text/javascript">
function drawBoard(){
var board = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63];
for(var i = 1; i <= board.length; i++){
if(i % 2 == 0){
document.getElementById("whiteSquare");
}else{
document.getElementById("blackSquare");
}
}
}
</script>
<style type="text/css">
#gameBoardBorder{
width: 480px;
height: 480px;
border: solid;
border-color: black;
border-width: 2px;
float: left;
}
h1{
text-align: center;
font-family: sans-serif;
}
#whiteSquare{
width: 60px;
height: 60px;
background-color: white;
}
#blackSquare{
width: 60px;
height: 60px;
background-color: black;
}
body{
background-color: lightblue;
}
</style>
</head>
<body onload="drawBoard()">
<h1>Chess Board</h1>
<div id="gameBoardBorder">
<!-- Noting more needed to be done here, rest will be in the css -->
</div>
<div id="whiteSquare">
<!-- Noting more needed to be done here, rest will be in the css and javaScript-->
</div>
<div id="blackSquare">
<!-- Noting more needed to be done here, rest will be in the css and javaScript-->
</div>
</body>
</html>
PS: Yes, I know the code looks bad and could be done in a better way I'll do the refactoring later.
Thanks in advance, to all who would try to help.
The reason you only get two squares:
document.getElementById returns an existing element; an element that already exists. In your HTML, you have only created 2 squares, and you never create any more.
I think every time you've used document.getElementById you are trying to create a new square.
You should use document.createElement instead of document.getElementById to create new elements.
So steps to fix your problem:
ids must be unique. Style for classes instead (to have more than 1 white square, and more than 1 black square):
.whiteSquare{
width: 60px;
height: 60px;
background-color: white;
}
.blackSquare{
width: 60px;
height: 60px;
background-color: black;
}
Remove the initial <div id="whiteSquare"> and <div id="blackSquare"> elements from your HTML. We will create them in JavaScript.
Replace
for(var i = 1; i <= board.length; i++){
if(i % 2 == 0){
document.getElementById("whiteSquare");
}else{
document.getElementById("blackSquare");
}
}
with
for (var i = 0; i < board.length; i++) {
var square = document.createElement("div");
if (i / 8 % 2 < 1) {
if (i % 2 == 0) square.classList.add("whiteSquare");
else square.classList.add("blackSquare");
} else {
if (i % 2 == 0) square.classList.add("blackSquare");
else square.classList.add("whiteSquare");
}
document.getElementById("gameBoardBorder").appendChild(square);
}
To get the squares to display in the right places, you need to add display: inline-block; to their stylings.
To get rid of a gap in-between rows of squares, set the style rule line-height: 0; on #gameBoardBorder
Note I put all the squares inside of #gameBoardBoarder.
function drawBoard() {
var board = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
];
for (var i = 0; i < board.length; i++) {
var square = document.createElement("div");
if (i / 8 % 2 < 1) {
if (i % 2 == 0) square.classList.add("whiteSquare");
else square.classList.add("blackSquare");
} else {
if (i % 2 == 0) square.classList.add("blackSquare");
else square.classList.add("whiteSquare");
}
document.getElementById("gameBoardBorder").appendChild(square);
}
}
#gameBoardBorder {
width: 480px;
height: 480px;
border: solid;
border-color: black;
border-width: 2px;
float: left;
line-height: 0;
}
#gameBoardBorder > * {
margin: 0;
padding: 0;
}
h1 {
text-align: center;
font-family: sans-serif;
}
.whiteSquare {
display: inline-block;
width: 60px;
height: 60px;
background-color: white;
}
.blackSquare {
display: inline-block;
width: 60px;
height: 60px;
background-color: black;
}
body {
background-color: lightblue;
}
<body onload="drawBoard()">
<h1>Chess Board</h1>
<div id="gameBoardBorder">
<!-- Noting more needed to be done here, rest will be in the css -->
</div>
</body>
In your example, you aren't actually creating any elements.
You need to create elements with Document.createElement, and then insert them with element.appendChild
Here is a simple unformatted example.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chess Game</title>
<script type="text/javascript">
function drawBoard(){
var board = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63];
const container = document.getElementById("gameBoardBorder");
for(var i = 1; i <= board.length; i++){
let el = document.createElement('div');
if(i % 2 == 0){
el.className = "whiteSquare";
}else{
el.className ="blackSquare";
}
container.appendChild(el);
}
}
</script>
<style type="text/css">
#gameBoardBorder{
width: 480px;
height: 480px;
border: solid;
border-color: black;
border-width: 2px;
display: flex;
flex-flow: row wrap;
}
h1{
text-align: center;
font-family: sans-serif;
}
.whiteSquare{
width: 60px;
height: 60px;
background-color: white;
}
.blackSquare{
width: 60px;
height: 60px;
background-color: black;
}
body{
background-color: lightblue;
}
</style>
</head>
<body onload="drawBoard()">
<h1>Chess Board</h1>
<div id="gameBoardBorder">
<!-- Noting more needed to be done here, rest will be in the css -->
</div>
<div id="whiteSquare">
<!-- Noting more needed to be done here, rest will be in the css and javaScript-->
</div>
<div id="blackSquare">
<!-- Noting more needed to be done here, rest will be in the css and javaScript-->
</div>
</body>
</html>
Now you can see that this doesn't actually create a chess board like you want - because the way the elements wrap (always left to right) means that you don't actually want every second element to be white.
It's up to you to decide how you want to handle this logic.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Chess Game</title>
<script>
function drawBoard(){
let row = 1;
for(let i = 1; i <= 64; i++){
if(row % 2 == 0){ // row 2,4,6,8
var color = i % 2 == 0 ? "whiteSquare" : "blackSquare";
}else{ // row 1,3,5,7
var color = i % 2 == 0 ? "blackSquare" : "whiteSquare";
}
let square = document.createElement("div");
square.className = color;
if (i % 8 == 0){ // new row
square.style = "clear:all";
row++;
}
gameBoardBorder.appendChild(square);
}
}
</script>
<style>
#gameBoardBorder{
width: 480px;
height: 480px;
border: solid;
border-color: black;
border-width: 2px;
float: left;
}
h1{
text-align: center;
font-family: sans-serif;
}
.whiteSquare{
width: 60px;
height: 60px;
background-color: white;
float: left;
}
.blackSquare{
width: 60px;
height: 60px;
background-color: black;
float: left;
}
body{
background-color: lightblue;
}
</style>
</head>
<body onload="drawBoard()">
<h1>Chess Board</h1>
<div id="gameBoardBorder">
<!-- Noting more needed to be done here, rest will be in the css -->
</div>
</body>
</html>

How to made refresh-able counter?

I'm beginner in JS. I have animated numbers. Works good, but i want my counters refresh every time, when scrolling page down.
So fiddle:
if ($('#animated-counter').length) {
$('#animated-counter .count').each(function() {
$(this).prop('Counter', 0).animate({
Counter: $(this).text()
}, {
duration: 4000,
easing: 'swing',
step: function(now) {
$(this).text(Math.ceil(now));
}
});
});
}
.count {
color: #fff;
font-size: 63px;
font-weight: bold;
line-height: 1.2;
display: block;
margin-bottom: 10px;
}
.animated-number-caption {
color: #ffffff;
font-size: 23px;
}
.animated-number {
background-color: rgba(25, 29, 32, .3);
padding: 50px 0;
text-align: center;
}
.animated-numbers-wrap {
background: linear-gradient(to bottom, rgba(52, 168, 23, 1) 0%, rgba(46, 133, 33, 1) 100%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="match" style="height:500px;"></div>
<div id="animated-counter" class="animated-numbers-wrap">
<div class="animated-numbers">
<div class="animated-number"><span class="count">200</span>
<h6><span class="animated-number-caption">Projects</span></h6>
</div>
<div class="animated-number"><span class="count">150</span>
<h6><span class="animated-number-caption">Projects</span></h6>
</div>
</div>
</div>
So i think, that it possible to make any refresh and waypoint(function(direction) and if (direction == 'down')...but i don't have any ideas. Help me please!

How to add Marker in jVectorMap?

I'm new to jVectorMap. I've already got the google map from the link: http://codepen.io/anon/pen/RPjJYb. I'm trying to add markers to this map.
I tried the following code but couldn't add marker to the map:
$('#vmap').vectorMap({
map: 'usa_en',
backgroundColor: null,
color: '#D2D3D4', //#F58025
hoverColor: '#754200',
selectedColor: '#F58025',
borderColor: '#FFFFFF',
enableZoom: false,
showTooltip: false,
regionsSelectable: true,
markersSelectable: true,
markerStyle: {
initial: {
fill: 'grey',
stroke: '#505050',
"fill-opacity": 1,
"stroke-width": 1,
"stroke-opacity": 1,
r: 5
},
hover: {
stroke: 'black',
"stroke-width": 2
},
selected: {
fill: 'blue'
},
selectedHover: {
}
},
markers: [
{latLng: [41.8781136,-87.6297982], name: "My marker name",style: {fill: 'yellow'}},
],
onRegionClick: function(element, code)
{
alert(code);
}
});
Please help me. Thanks in advance.
You are not using jVectormap, but jqvmap. I don't think it implements markers.
You can switch to jVectorMap, it's a bit different, but it has markers like: http://jvectormap.com/examples/markers-world/
Simple demo: http://jsfiddle.net/IrvinDominin/96o28qnh/
as #Irvin Dominin said jqvmap does not implement markers so try using jVectormap they are lot alike.
$(document).ready(function(){
$('#vmap').vectorMap({
map: 'us_aea_en',
backgroundColor: '#00ff11',
color: '#D2D3D4', //#F58025
hoverColor: '#754200',
selectedColor: '#F58025',
borderColor: '#FFFFFF',
enableZoom: false,
showTooltip: false,
regionsSelectable: true,
markersSelectable: true,
hoverOpacity: 0.7,
markersSelectable: true,
markerStyle: {
initial: {
fill: 'grey',
stroke: '#505050',
"fill-opacity": 1,
"stroke-width": 1,
"stroke-opacity": 1,
r: 5
},
hover: {
stroke: 'black',
"stroke-width": 2
},
selected: {
fill: 'blue'
},
selectedHover: {
}
},
markers: [
{latLng: [41.8781136,-87.6297982], name: "My marker name",style: {fill: 'yellow'}},
],
onRegionClick: function(element, code)
{
alert(code);
}
});
});
.jvectormap-label {
position: absolute;
display: none;
border: solid 1px #CDCDCD;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background: #292929;
color: white;
font-family: sans-serif, Verdana;
font-size: smaller;
padding: 3px;
}
.jvectormap-zoomin, .jvectormap-zoomout {
position: absolute;
left: 10px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background: #292929;
padding: 3px;
color: white;
width: 10px;
height: 10px;
cursor: pointer;
line-height: 10px;
text-align: center;
}
.jvectormap-zoomin {
top: 10px;
}
.jvectormap-zoomout {
top: 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://demo.omnigon.com/christian_bovine/showtime/js/jquery-jvectormap-1.1.1.min.js"></script>
<script src="http://demo.omnigon.com/christian_bovine/showtime/js/jquery.jvectormap-us.js"></script>
<div id="vmap" style="width: 600px; height: 600px;"></div>

Categories

Resources