Deck of Cards (old version)
The new multiplayer Deck of Cards is released at https://deck.of.cards, but will have its cards library open sourced soon here!
Pure vanilla JS (+ CSS3) – no dependencies, by Juha Lindstedt & contributors.
Install from Google Chrome Web Store
Frontside card graphics are slightly modified from Chris Aguilar's awesome Vector Playing Card Graphics Set.
Also check out my RE:DOM and HTML5 Node Garden projects!
This project exists thanks to all the people who contribute. [Contribute].
Become a financial contributor and help us sustain our community. [Contribute]
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
LGPL if you use Chris Aguilar's vector playing cards. Otherwise MIT.
npm install deck-of-cards
Then add in your html file
<head>
:<link rel="stylesheet" href="node_modules/deck-of-cards/example/example.css">
<body>
:<script src="node_modules/deck-of-cards/dist/deck.min.js"></script>
<html>
<head>
<title>Cards</title>
<link rel="stylesheet" href="node_modules/deck-of-cards/example/example.css">
</head>
<body>
<script src="node_modules/deck-of-cards/dist/deck.min.js"></script>
<div id="container"></div>
<script>
var $container = document.getElementById('container');
// create Deck
var deck = Deck();
// add to DOM
deck.mount($container);
deck.cards.forEach(function (card, i) {
card.setSide(Math.random() < 0.5 ? 'front' : 'back');
// explode
card.animateTo({
delay: 1000 + i * 2, // wait 1 second + i * 2 ms
duration: 500,
ease: 'quartOut',
x: Math.random() * window.innerWidth - window.innerWidth / 2,
y: Math.random() * window.innerHeight - window.innerHeight / 2
});
});
</script>
</body>
</html>
Available on JsFiddle: http://jsfiddle.net/x0gjood1/
// Instantiate a deck
var deck = Deck();
// display it in a html container
var $container = document.getElementById('container');
deck.mount($container);
Deck example: http://jsfiddle.net/ec4kcx1k/
// Flip all cards in deck
deck.flip();
// Sort cards
deck.sort();
// Shuffle
deck.shuffle();
// Display fan
deck.fan();
// Remove deck from html container, hide it
deck.unmount();
Shuffle cards and fan: http://jsfiddle.net/favbdkta/
Deck with jokers:
// Instantiate a deck with jokers
var deck = Deck(true);
// Select the first card
var card = deck.cards[0];
// Add it to an html container
card.mount($container);
// Allow to move/drag it
card.enableDragging();
card.disableDragging();
// Allow to flip it
card.enableFlipping();
card.disableFlipping();
// Flip card
card.flip();
// Display card front or back
card.setSide('front');
card.setSide('back');
Draggable and flippable card: http://jsfiddle.net/cgz9mjts/
Remove a card from a deck
var deck = Deck();
// Remove 10 cards starting from the 6th
var removedCards = deck.cards.splice(5, 10);
removedCards.forEach(function (removedCard) {
removedCard.unmount();
});
Deck without Clubs: http://jsfiddle.net/L25facxj/
npm install
npm start
(starts watching for changes..)
css/ - CSS source (stylus + nib) of the example
chrome/ - Chrome Web Store app source
dist/ - deck.js & deck.min.js
example/ - https://deck-of-cards.js.org
lib/ - JS (ES6) source of dist/deck.js - deck.js is also the main file
views/ - HTML source of the example