Single Elimination Tournament Bracket Generator In jQuery - Gracket.js
| File Size: | 11.7 KB |
|---|---|
| Views Total: | 11227 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
Gracket.js is a small jQuery bracket plugin to dynamically generate a customizable single-elimination tournament bracket on the webpage.
The plugin makes use of HTML5 canvas to build the bracket structure with several useful options.
How to use it:
1. Insert the minified version of the Gracket.js library after jQuery.
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT"
crossorigin="anonymous"></script>
<script src="jquery.gracket.min.js"></script>
2. Prepare your data (team/player name, ID, seed, etc) for the tournament bracket.
myData = [
[
[ {"name" : "Erik Zettersten", "id" : "erik-zettersten", "seed" : 1, "displaySeed": "D1", "score" : 47 }, {"name" : "Andrew Miller", "id" : "andrew-miller", "seed" : 2} ],
[ {"name" : "James Coutry", "id" : "james-coutry", "seed" : 3}, {"name" : "Sam Merrill", "id" : "sam-merrill", "seed" : 4}],
[ {"name" : "Anothy Hopkins", "id" : "anthony-hopkins", "seed" : 5}, {"name" : "Everett Zettersten", "id" : "everett-zettersten", "seed" : 6} ],
[ {"name" : "John Scott", "id" : "john-scott", "seed" : 7}, {"name" : "Teddy Koufus", "id" : "teddy-koufus", "seed" : 8}],
[ {"name" : "Arnold Palmer", "id" : "arnold-palmer", "seed" : 9}, {"name" : "Ryan Anderson", "id" : "ryan-anderson", "seed" : 10} ],
[ {"name" : "Jesse James", "id" : "jesse-james", "seed" : 1}, {"name" : "Scott Anderson", "id" : "scott-anderson", "seed" : 12}],
[ {"name" : "Josh Groben", "id" : "josh-groben", "seed" : 13}, {"name" : "Sammy Zettersten", "id" : "sammy-zettersten", "seed" : 14} ],
[ {"name" : "Jake Coutry", "id" : "jake-coutry", "seed" : 15}, {"name" : "Spencer Zettersten", "id" : "spencer-zettersten", "seed" : 16}]
],
[
[ {"name" : "Erik Zettersten", "id" : "erik-zettersten", "seed" : 1}, {"name" : "James Coutry", "id" : "james-coutry", "seed" : 3} ],
[ {"name" : "Anothy Hopkins", "id" : "anthony-hopkins", "seed" : 5}, {"name" : "Teddy Koufus", "id" : "teddy-koufus", "seed" : 8} ],
[ {"name" : "Ryan Anderson", "id" : "ryan-anderson", "seed" : 10}, {"name" : "Scott Anderson", "id" : "scott-anderson", "seed" : 12} ],
[ {"name" : "Sammy Zettersten", "id" : "sammy-zettersten", "seed" : 14}, {"name" : "Jake Coutry", "id" : "jake-coutry", "seed" : 15} ]
],
[
[ {"name" : "Erik Zettersten", "id" : "erik-zettersten", "seed" : 1}, {"name" : "Anothy Hopkins", "id" : "anthony-hopkins", "seed" : 5} ],
[ {"name" : "Ryan Anderson", "id" : "ryan-anderson", "seed" : 10}, {"name" : "Sammy Zettersten", "id" : "sammy-zettersten", "seed" : 14} ]
],
[
[ {"name" : "Erik Zettersten", "id" : "erik-zettersten", "seed" : 1}, {"name" : "Ryan Anderson", "id" : "ryan-anderson", "seed" : 10} ]
],
[
[ {"name" : "Erik Zettersten", "id" : "erik-zettersten", "seed" : 1} ]
]
];
3. Create an empty gracket element in which the Tournament Bracket will generate.
<div class="my_gracket"></div>
4. Call the function to render a basic Tournament Bracket inside the element. Make sure the min-width of the .gracket h3 element is set to width of the largest name/player. Gracket needs to build its canvas based on the width of the largest element.
$(".my_gracket").gracket({
src: myData
});
5. Apply your own styles to the Tournament Bracket.
.g_gracket {
width: 9999px;
background-color: #fff;
padding: 55px 15px 5px;
line-height: 100%;
position: relative;
overflow: hidden;
}
.g_round {
float: left;
margin-right: 70px;
}
.g_game {
position: relative;
margin-bottom: 15px;
}
.g_gracket h3 {
margin: 0;
padding: 10px 8px 8px;
font-size: 18px;
font-weight: normal;
color: #fff
}
.g_team {
background: #3597AE;
}
.g_team:last-child {
background: #FCB821;
}
.g_round:last-child {
margin-right: 20px;
}
.g_winner {
background: #444;
}
.g_winner .g_team {
background: none;
}
.g_current {
cursor: pointer;
background: #A0B43C!important;
}
.g_round_label {
top: -5px;
font-weight: normal;
color: #CCC;
text-align: center;
font-size: 18px;
}
6. Available options to customize the Tournament Bracket.
$(".my_gracket").gracket({
// default CSS classes
gracketClass : "g_gracket",
gameClass : "g_game",
roundClass : "g_round",
roundLabelClass : "g_round_label",
teamClass : "g_team",
winnerClass : "g_winner",
spacerClass : "g_spacer",
currentClass : "g_current",
seedClass : "g_seed",
// radius in pixels
cornerRadius : 15,
// canvas options
canvasId : "g_canvas",
canvasClass : "g_canvas",
canvasLineColor : "#eee",
canvasLineCap : "round",
canvasLineWidth : 2,
canvasLineGap : 15,
// an array of round labels
roundLabels : []
});
This awesome jQuery plugin is developed by Zettersten. For more Advanced Usages, please check the demo page or visit the official website.








