Giter Site home page Giter Site logo

jqvmap's Introduction

JQVMap

This project is a heavily modified version of jVectorMap as it was in April of 2012. I chose to start fresh rather than fork their project as my intentions were to take it in such a different direction that it would become incompatibale with the original source, rendering it near impossible to merge our projects together without extreme complications.

IMPORTANT: JQVMap has Transferred Ownership

Rest assured, JQVMap will remain Open Source. @manifestinteractive just felt it was time to hand over the reins to a team that can continue to give JQVMap the love and attention it deserves. As of today, JQVMap will be managed by @10bestdesign.

jQuery Vector Map

To get started, all you need to do is include the JavaScript and CSS files for the map you want to load ( contained in the ./dist folder ).

Here is a sample HTML page for loading the World Map with default settings:

<html>
  <head>
    <title>JQVMap - World Map</title>
    <link href="../dist/jqvmap.css" media="screen" rel="stylesheet" type="text/css">

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script type="text/javascript" src="../dist/jquery.vmap.js"></script>
    <script type="text/javascript" src="../dist/maps/jquery.vmap.world.js" charset="utf-8"></script>

    <script type="text/javascript">
    jQuery(document).ready(function() {
      jQuery('#vmap').vectorMap({ map: 'world_en' });
    });
    </script>
  </head>
  <body>
    <div id="vmap" style="width: 600px; height: 400px;"></div>
  </body>
</html>

Making it Pretty

While initializing a map you can provide parameters to change its look and feel.

jQuery('#vmap').vectorMap(
{
    map: 'world_en',
    backgroundColor: '#a5bfdd',
    borderColor: '#818181',
    borderOpacity: 0.25,
    borderWidth: 1,
    color: '#f4f3f0',
    enableZoom: true,
    hoverColor: '#c9dfaf',
    hoverOpacity: null,
    normalizeFunction: 'linear',
    scaleColors: ['#b6d6ff', '#005ace'],
    selectedColor: '#c9dfaf',
    selectedRegions: null,
    showTooltip: true,
    onRegionClick: function(element, code, region)
    {
        var message = 'You clicked "'
            + region
            + '" which has the code: '
            + code.toUpperCase();

        alert(message);
    }
});

More Examples

You can see a variety of examples in the ./examples folder.

Configuration Settings

map 'world_en'

Map you want to load. Must include the javascript file with the name of the map you want. Available maps with this library are world_en, usa_en, europe_en and germany_en

backgroundColor '#a5bfdd'

Background color of map container in any CSS compatible format.

borderColor '#818181'

Border Color to use to outline map objects

borderOpacity 0.5

Border Opacity to use to outline map objects ( use anything from 0-1, e.g. 0.5, defaults to 0.25 )

borderWidth 3

Border Width to use to outline map objects ( defaults to 1 )

color '#f4f3f0'

Color of map regions.

colors

Colors of individual map regions. Keys of the colors objects are country codes according to ISO 3166-1 alpha-2 standard. Keys of colors must be in lower case.

enableZoom boolean

Whether to Enable Map Zoom ( true or false, defaults to true)

hoverColor '#c9dfaf'

Color of the region when mouse pointer is over it.

hoverColors

Colors of individual map regions when mouse pointer is over it. Keys of the colors objects are country codes according to ISO 3166-1 alpha-2 standard. Keys of colors must be in lower case.

hoverOpacity 0.5

Opacity of the region when mouse pointer is over it.

normalizeFunction 'linear'

This function can be used to improve results of visualizations for data with non-linear nature. Function gets raw value as the first parameter and should return value which will be used in calculations of color, with which particular region will be painted.

scaleColors ['#b6d6ff', '#005ace']

This option defines colors, with which regions will be painted when you set option values. Array scaleColors can have more then two elements. Elements should be strings representing colors in RGB hex format.

selectedColor '#333333'

Color for a region when you select it

selectedRegions ['MO', 'FL', 'OR']

This is the Region that you are looking to have preselected (two letter ISO code, defaults to null ). See REGIONS.md

multiSelectRegion boolean

Whether to enable more than one region to be selected at a time.

showLabels boolean

Whether to show ISO Code Labels ( true or false, defaults to false )

showTooltip boolean

Whether to show Tooltips on Mouseover ( true or false, defaults to true )

onLoad function(event, map)

Callback function which will be called when map is loading, returning the map event and map details.

onLabelShow function(event, label, code)

Callback function which will be called before label is shown. Label DOM object and country code will be passed to the callback as arguments.

onRegionOver function(event, code, region)

Callback function which will be called when the mouse cursor enters the region path. Country code will be passed to the callback as argument.

onRegionOut function(event, code, region)

Callback function which will be called when the mouse cursor leaves the region path. Country code will be passed to the callback as argument.

onRegionClick function(event, code, region)

Callback function which will be called when the user clicks the region path. Country code will be passed to the callback as argument. This callback may be called while the user is moving the map. If you need to distinguish between a "real" click and a click resulting from moving the map, you can inspect $(event.currentTarget).data('mapObject').isMoving.

onRegionSelect function(event, code, region)

Callback function which will be called when the selects a region. Country code will be passed to the callback as argument.

onRegionDeselect function(event, code, region)

Callback function which will be called when the deselects a region. Country code will be passed to the callback as argument.

onResize function(event, width, height)

Callback function which will be called when the map is resized. Return event, width & height.

pins { "pk" : "pk_pin_metadata", "ru" : "ru_pin_metadata", ... }

This option defines pins, which will be placed on the regions. The JSON can have only one element against one country code. Elements should be strings containing the HTML or id of the pin (depends on the 'pinMode' option explained next).

pinMode content

This option defines if the "pins" JSON contains the HTML strings of the pins or the ids of HTML DOM elements which are to be placed as pins.

If the pin mode is "content" (or not specified) then the parameter "pins" contains the stringified html content to be placed as the pins.

Example:

jQuery('#vmap').vectorMap({
    map: 'world_en',
    pins: { "pk" : "\u003cimg src=\"pk.png\" /\u003e" /*serialized <img src="pk.png" />*/, ... },
    pinMode: 'content'
});

If the pin mode is "id" then the parameter "pins" contains the value of "id" attribute of the html (DOM) elements to be placed as pins. Example:

<script>
  jQuery('#vmap').vectorMap({
      map: 'world_en',
      pins: { "pk" : "pin_for_pk", "ru" : "pin_for_ru", ... },
      pinMode: 'id'
  });
</script>
<div style="display:none">
  <img id="pin_for_pk" src="pk.png" />
  <div id="pin_for_ru">...</div>
</div>

Note:

  1. The pin is placed at the center of the rectangle bounding the country. So depending on the shape of the country, the pin might not land on the country itself. For instance, the pin for 'US' lands in the center of Alaska and rest of the US, which happens to be in the ocean between them.

  2. If the "pinMode" is set to "id", then the html DOM elements having those ids are NOT COPIED to the desired position, they are TRANSFERRED. This means that the elements will be removed from their original positions and placed on the map.

Dynamic Updating

Most of the options can be changed after initialization using the following code:

jQuery('#vmap').vectorMap('set', 'colors', {us: '#0000ff'});

Instead of colors can be used any parameter except callbacks. Callbacks can be added and deleted using standard jQuery patterns of working with events. You can define callback function when you initialize JQVMap:

jQuery('#vmap').vectorMap(
{
    onLoad: function(event, map)
    {

    },
    onLabelShow: function(event, label, code)
    {

    },
    onRegionOver: function(event, code, region)
    {

    },
    onRegionOut: function(event, code, region)
    {

    },
    onRegionClick: function(event, code, region)
    {

    },
    onResize: function(event, width, height)
    {

    }
});

Or later using standard jQuery mechanism:

jQuery('#vmap').bind('load.jqvmap',
    function(event, map)
    {

    }
);
jQuery('#vmap').bind('labelShow.jqvmap',
    function(event, label, code)
    {

    }
);
jQuery('#vmap').bind('regionMouseOver.jqvmap',
    function(event, code, region)
    {

    }
);
jQuery('#vmap').bind('regionMouseOut.jqvmap',
    function(event, code, region)
    {

    }
);
jQuery('#vmap').bind('regionClick.jqvmap',
    function(event, code, region)
    {

    }
);
jQuery('#vmap').bind('resize.jqvmap',
    function(event, width, height)
    {

    }
);

Consider that fact that you can use standard features of jQuery events like event.preventDefault() or returning false from the callback to prevent default behavior of JQVMap (showing label or changing country color on hover). In the following example, when user moves mouse cursor over Canada label won't be shown and color of country won't be changed. At the same label for Russia will have custom text.

jQuery('#vmap').vectorMap(
{
    onLabelShow: function(event, label, code)
    {
        if (code == 'ca')
        {
            // Hide the label
            event.preventDefault();
        }
        else if (code == 'ru')
        {
            // Plain TEXT labels
            label.text('Bears, vodka, balalaika');
        }
        else if (code == 'us')
        {
            // HTML Based Labels. You can use any HTML you want, this is just an example
            label.html('<div class="map-tooltip"><h1 class="header">Header</h1><p class="description">Some Description</p></div>');
        }
    },
    onRegionOver: function(event, code)
    {
        if (code == 'ca')
        {
            event.preventDefault();
        }
    },
});

Data Visualization

Here I want to demonstrate how visualization of some geographical-related data can be done using JQVMap. Let's visualize information about GDP in 2010 for every country. At first we need some data. Let it be site of International Monetary Fond. There we can get information in xsl format, which can be converted first to csv and then to json with any scripting language. Now we have file gdp-data.js with such content (globals are evil, I know, but just for the sake of simplification):

var gdpData = {"af":16.63,"al":11.58,"dz":158.97,...};

Then connect it to the page and add some code to make visualization:

var max = 0,
    min = Number.MAX_VALUE,
    cc,
    startColor = [200, 238, 255],
    endColor = [0, 100, 145],
    colors = {},
    hex;

//find maximum and minimum values
for (cc in gdpData)
{
    if (parseFloat(gdpData[cc]) > max)
    {
        max = parseFloat(gdpData[cc]);
    }
    if (parseFloat(gdpData[cc]) < min)
    {
        min = parseFloat(gdpData[cc]);
    }
}

//set colors according to values of GDP
for (cc in gdpData)
{
    if (gdpData[cc] > 0)
    {
        colors[cc] = '#';
        for (var i = 0; i<3; i++)
        {
            hex = Math.round(startColor[i]
                + (endColor[i]
                - startColor[i])
                * (gdpData[cc] / (max - min))).toString(16);

            if (hex.length == 1)
            {
                hex = '0'+hex;
            }

            colors[cc] += (hex.length == 1 ? '0' : '') + hex;
        }
    }
}

//initialize JQVMap
jQuery('#vmap').vectorMap(
{
    colors: colors,
    hoverOpacity: 0.7,
    hoverColor: false
});

Functions

There are seven functions that can be called on map container:

zoomIn() Zoom one step in

Usage:

jQuery('#vmap').vectorMap('zoomIn');

zoomOut() Zoom one step out

Usage:

jQuery('#vmap').vectorMap('zoomOut');

getPinId(cc) Returns the html attribute "id" of the pin placed on the country whose country code is provided in "cc".

Usage:

var pinId = jQuery('#vmap').vectorMap('getPinId', 'pk');

getPin(cc) Returns stringified HTML of the pin placed on the country whose country code is provided in "cc".

Usage:

var pinContent = jQuery('#vmap').vectorMap('getPin', 'pk');

getPins() Returns an associative JSON string containing stringified HTML of all the pins.

Usage:

var pins = jQuery('#vmap').vectorMap('getPins');

removePin(cc) Removes the pin from the country whose country code is specified in "cc".

Usage:

jQuery('#vmap').vectorMap('removePin', 'pk');

removePins() Removes all the pins from the map.

Usage:

jQuery('#vmap').vectorMap('removePins');

Events

There are three events which you can use to bind your own callbacks to:

drag When the map is dragged, this event is triggered.

zoomIn When the map is zoomed in, this event is triggered.

zoomOut When the map is zoomed out, this event is triggered.

You can bind your routines to any of these events by using jQuery on() For example:

//Do something when the map is dragged
jQuery('#vmap').on('drag', function(event)
{
    console.log('The map is being dragged');
    //Do something
});

Custom Maps

So you want to create your own maps, or change some existing ones. Awesome. Make sure to check out ./create/README.md for details on how to do this.

jqvmap's People

Contributors

10bestdesign avatar aa-lubis avatar adeelnawaz avatar alexbogias avatar andyburke avatar benjamincorey avatar bfallert avatar dariygray avatar der-on avatar dflemstr avatar dominiklaube avatar elmeerr avatar falkendk avatar jantimon avatar jbafford avatar jcstone avatar kathmann avatar kenshino avatar mahmoud-eskandari avatar manifestinteractive avatar marcdepoe avatar mohammadyounes avatar ozdemirburak avatar peter-schmalfeldt avatar randyhoulahan avatar reddine avatar rudyleclercq avatar sonnydg avatar username-af avatar wallin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jqvmap's Issues

Adding CSS3 Gradient colors

Would there be a way to add in CSS3 gradients on the countries, instead of setting just a solid color in the initialize script?

Click Function

Its a very easy question and I am not web professional. I need to create an Interactive Map. I am using JQVMap. Now I need to click region and it will callback an URL of the state. I am giving and function that was given as example in the site. But I dont know how to setup the link with State and URLs. Do I need to store the URLs in a JS and call from there? or I can put the URLs directly under region code. Any Sample code will be enough for me. Please let me know. It will be very helpful to me.

Dynamically Deselecting Regions

Need a method to deselect regions. Perhaps selectedRegion could be overloaded? Perhaps it's better to have a discrete method. E.g.:

$element.vectorMap("set", "selectedRegion", null)

Schow names of the citys

How can i schow the name of the citys on the map (without mouseover or click, they should be shown when the map ist opened)

Markers

Is there any way to draw markers on maps ?

IE8 bug rendering map

I'm using the map world_en, and evrything works perfectly in every browser except IE8. The problem in IE8 is that when i try to see the map, the map load perfectly with the specific countries that I specify to be a certain color and the rest not, but when this is finishing loading into the page, there is a second map that load over it, all white and hide the one that i need. I checked the code and it seems that IE8 load to times the rvml code. can someone help me?

how to link xml data to a country when its clicked

I have a xml file containing information (title and Url) about some countries. when i'll click a country, i would like to show the title and the url. How can i do this? how can i link a xml file and info to the map to be able to show in the page the links for the country that is clicked/selected?

Can somebody help me? I'm stuck :/

JQVMap - Setting regions as disabled/unselectable

I want to set regions in the map without data to be disabled from clicking. Is there any way to do that...I have been successful with disabling color change onRegionOver, but the same regions still responds to click (and changes color of region...). I tried calling preventDefault() method from onRegionOver and onRegionClick events...But it did not help... Would appreciate any help.

Please see: http://tinyurl.com/bqx6qjb

onRegionClick fires when dragging

onRegionClick fires and a region is selected when dragging, but when you try to drag the map it isn't really a 'click' on a region.

Differences to jVectorMap

The last weeks i had to decide, whether to use jVectorMap or jqvmap. I had no idea, which of both are "better", so i decided to use the original project.

So... Could you state out, in the README-file, what you made different in this project than the developer of jVectorMap? Perhaps what your project is able to handle and jVectorMap not.

Setting countries as disabled/unselectable

It's often the case that data or interaction/functionaliy is only available for some countries, in which case one would want to specify which ones (i.e. a whitelist) and disable all others, so that they are still displayed but rendered some other way/colour/style.

This doesn't appear to be possible at present, please consider adding support for this?

Destroy Map?

Is there a way to destroy a map using and event handler? I'd like to be able to dynamically load a map based on user click.

Declarative support for choropleth breakpoints

User story

As a cartogrpher
I would like to color my maps using different statistical methods
so that I can explore and show natural patterns in data
As  visualization developer
I would like to declare breakpoints for choropleth colors
so that I can minimise the amount of procedural code required to color a map

Feature request

It would be helpful to have a choice of Jenks Natural Breaks for the classification algorithm.
http://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization

References

Here is a JS implementation of the algorithm:
https://github.com/vvoovv/djeo-jenks

Here is a PHP implementation of the algorithm:
https://github.com/randomdrake/jenks

usable map editor

I found a rewiew of jqvmap on some site that ended with a brilliant cite stating that:

"Unfortunately the site of plugin developers does not explain how to make your custom maps for other countries."

And actually it describes a huge lack of well documented map creation process. Are you planning to fix this area?

Welding countries into groups/regions & zooming in to reveal countries

It's a fairly common requirement for corporate web sites that there is a map showing global corporate presence, usually first shown by region of the world, then by country within each region.

It would be great if jqvmap offered a way to do this by dynamically welding countries together into regions (by providing a mapping between region names and lists of countries within each region) and then when the region is clicked to smoothly zoom in to fill the render area with the region, and thereby also reveal the individual countries within the region.

Is there a way to retrieve colors range in legend?

Hi all,

I would like to know if there is a way to retrieve calculated colors and the range applied for each of them.
This is to generate a legend next to the map with the range associated to each color.

Thank you
Thierry

No Tooltips in IE8

I'm noticing once I get the maps actually showing in IE8 with jboelen's hack that none of the Tooltips are showing.

IE8 also throws an error onRegionClick at line 532. Stating Object doesn't support this property or method. The following doesn't seem to play nice with IE8?

map.countries[key].currentFillColor = map.countries[key].getOriginalFill();
    map.countries[key].setFill(map.countries[key].getOriginalFill());

(Pre)selecting more than one country, and retrieving selected countries.

There are many situations in which one might want to select/highlight more than one country at a time (especially when first rendering the map) but this isn't possible at present as the selectedRegion property only accepts a single country code. Enhancing the property to permit multiple countries to be preselected would solve this, and I suggest that the opportunity should also be taken to name the field "selectedCountries" rather than "selectedRegions", as regions usually refer to a cluster of countries.

Similarly, one might want to use the map to select multiple countries by mouse/touch and persist the data to form field, so making "selectedCountries" a readable property would solve this, though a setting to control multiple selection mode & appropriate supporting code would also be required.

onRegionClick error in IE8

I setup the onRegionClick option to open another div on click and it worked great in Chrome, FF, IE9. But IE8 gave me this error:

Object doesn't support this property or method jquery.vmap.js, line 523 character 3

In testing I commented out lines 523 & 524 and now IE8 seems to work fine. I'm sure they're in there for a reason so please let me know why I should put them back if I need to. But for now at least IE8 is working.

Lines 523, 524:
map.countries[key].currentFillColor = map.countries[key].getOriginalFill();
map.countries[key].setFill(map.countries[key].getOriginalFill());

Generating map using python

Rig info:

Mac OS X 10.6.8
Python 3.2.2

Have issues creating a map, I have tried a few times in terminal and I keeps spitting back variables it doesn't like or won't run what so ever. The fallowing snippet it the command I run to attempt to create the map.

python
converter.py
mn.shp
mnmap.js
--width 900
--country_name_index 4
--where "ISO = 'USA'"
--codes_file path/to/codes-en.tsv
--insets '[{"codes": ["US-AK"], "width": 200, "left": 10, "top": 370}, {"codes": ["US-HI"], "width": 100, "left": 220, "top": 400}]'
--minimal_area 4000000
--buffer_distance -3000
--simplify_tolerance 1000
--longtitude0 10w
--name us

I apologize in advance if I'm missing something.

How do you find the real dimensions of the map ?

I want to create my own map of France, i picked this one here http://fr.wikipedia.org/wiki/Fichier:D%C3%A9partements%2Br%C3%A9gions%2Bcapitales(France).svg

i removed all the titles, the additional lines, the sea, and the others countries with Illustrator.

I saved the map in SVG. When i open it, i can read "width" and "height" wiches are the dimensions on my artboard. When i put these dimensions in the JS file with all the paths. The map is cropped... i can't see the Corsica..

So my question is, how do you find the real dimensions of the map ?

Many thanks :)

China provinces map

Hi,

Was wondering how can I create a map using jqvmap of Chinese provinces?

Thanks!

Error in Europe map data

Just to mention that there's a small error towards the end of jquery.vmap.europe.js: Suriname is mentioned with SR iso code, while it should be Serbia with RS.

Inserting map clicks into History?

Hi there,

Just wondering if there's any simple way to insert into the browsers history when a user clicks on a map region?

I've managed to alter the map so that when a region is clicked, it goes to a new URL, but that doesn't get tracked in the history...

I've been looking at all sorts of jquery history plugins, but can't quite figure out how to combine the two!

Any help would be much appreciated!

pen street map

anyway to integrate with open street map ?

The idea would be to pull the data they have as needed in a azy loading design pattern.

Redraw map

Currently I do not see a way to redraw a map. For instance, if I load a map to a hidden element, when I show the element the map is not visible, the width and height are set to zero. If i manually set the width and height, the scale of the map is extremely small.

A function call to redraw the map when the element is show would be extremely useful, or am I overlooking something.

Possible solutions:
1.) add options for width and height inside the params
2.) My solution (requires you to add data attributes to the container of width and height):
=== the js -- starts at line 421 of lastest jquery.vmap.js ===


    if(params.container.width() == 0){
        this.width = params.container.attr('data-width');
    }else{
        this.width = params.container.width();
    }   
    
    if(params.container.height() == 0){
        this.height = params.container.attr('data-height');
    }else{
        this.height = params.container.height();
    }

== the html --missing "< >" due to editor -- ==


div id="vmap" data-width="960" data-height="525"> /div>"

Great plugin. Hope this helps someone

Is it possible to dynamically change colour using a region name instead of code?

I have a selected list of top 5 countries. I would like to be able to dynamically change the colour of these countries on the map, after the map is created.

I basically want to be able to do this:
$('#map').vectorMap('set', 'colors', { us: '#8EE5EE' });

However instead of 'us' I'd like to use 'United States'.

Either that or else some way of retrieving the code using the region.

Thanks in advance

Is there a way reset all countries color?

Is there a way to set all country colors back to their default color? Or, is there a way to set all countries to a specific color?

I tried setting it with color to no avail.

hoverColors ?

is it possible to do "hoverColors" as in "Colors"

i tried something like this : " hoverColors: {us: '#0000ff', fr: 'yellow'}," but does not work.

Any ideas ?

maybe in onRegionOver ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.