ImageMapster Vegetable Tray Demo
Shows how to use different area options, and handling special events
by Geo George
HTML
<script src="http://www.outsharked.com/scripts/jquery.imagemapster.js"></script>
<div style="clear: both; width: 500px; height: 50px; border: 1px solid black;" id="selections"></div>
<img id="vegetables" src="http://www.outsharked.com/imagemapster/examples/images/vegetables.jpg" usemap="#veg">
<map id="veg_map" name="veg">
<area shape="poly" name="redpepper" coords="412,156, 427,161, 429,163, 444,153, 453,155, 457,159, 452,168, 459,174, 455,178, 460,179, 463,193, 460,203, 441,214, 436,217, 458,238, 469,257, 479,267, 478,269, 479,285, 458,309, 436,310, 414,305, 410,323, 397,334, 379,313, 389,316, 401,320, 399,305, 382,300, 371,290,
367,296, 366,298,
338,274, 332,272, 300,239, 316,238, 316,234, 313,230, 328,225, 333,213, 338,196, 333,181, 337,166, 345,145" href="#">
<area shape="poly" name="celery" coords="147,131, 156,143, 163,146, 177,129, 175,138, 177,138, 182,144, 180,164, 148,169, 139,171, 144,180, 141,198, 139,208, 140,222, 127,237, 148,216, 163,212, 166,216, 160,223, 163,233, 153,281, 135,318, 129,313, 122,322, 117,320, 99,301, 98,293, 85,300, 80,303, 74,300,
64,285, 76,272, 98,249,
94,246, 72,261, 57,258, 62,251, 60,248, 47,228, 51,207, 71,195, 72,192, 38,202, 33,195, 30,173, 147,127" href="#">
<area shape="poly" name="carrots" coords="175,74, 170,80, 154,85, 189,103, 190,111, 182,111, 179,98, 157,95, 142,111, 140,128, 38,169, 39,163, 74,143, 74,141, 56,135, 52,115, 79,111, 78,106, 63,98, 71,91, 81,88, 82,83, 91,75, 136,74, 174,70" href="#">
<area shape="poly" name="asparagus" coords="224,25, 239,33, 244,36, 247,32, 327,23, 344,31, 343,36, 319,41, 315,42, 302,52, 272,61, 265,64, 270,73, 256,67, 248,60, 187,55, 192,58, 192,60, 184,64, 185,67, 176,67, 173,69, 142,67, 146,63, 135,59, 123,57, 142,44, 145,42, 143,39, 145,32, 207,38, 185,18, 212,19,
220,22" href="#">
<area shape="poly" name="squash" coords="388,26, 391,38, 394,43, 395,46, 425,58, 427,68, 428,92, 386,125, 371,132, 374,124, 377,118, 374,105, 371,105, 370,107,...
JavaScript
// a cross reference of area names to text to be shown for each area
var xref = {
carrots: "<b>Carrots</b> are delicious and may turn your skin orange!",
asparagus: "<b>Asparagus</b> is one of the first vegetables of the spring. "
+"Being a dark green, it's great for you, and has interesting side effects.",
squash: "<b>Squash</b> is a winter vegetable, and not eaten raw too much. Is that really squash?",
redpepper: "<b>Red peppers</b> are actually the same as green peppers, they've just been left on "
+"the vine longer. Delicious when fire-roasted.",
yellowpepper: "Similar to red peppers, <b>yellow peppers</b> are sometimes sweeter.",
celery: "<b>Celery</b> is a fascinating vegetable. Being mostly water, it actually takes your body "
+"more calories to process it than it provides.",
cucumbers: "<b>Cucumbers</b> are cool.",
broccoli: "<b>Broccoli</b> is like a forest of goodness in your mouth. And very good for you. "
+"Eat lots of broccoli!",
dip: "Everything here is good for you but this one. <b>Don't be a dip!</b>"
};
var defaultDipTooltip = 'I know you want the dip. But it\'s loaded with saturated fat, just skip it '
+'and enjoy as many delicious, crisp vegetables as you can eat.';
var image = $('#vegetables');
image.mapster(
{
fillOpacity: 0.4,
fillColor: "ffffff",
stroke: true,
strokeColor: "3320FF",
strokeOpacity: 0.8,
strokeWidth: 4,
singleSelect: true,
mapKey: 'name',
listKey: 'name',
onClick: function (e) {
var newToolTip = defaultDipTooltip;
// update text depending on area selected
$('#selections').html(xref[e.key]);
// if Asparagus selected, change the tooltip
if (e.key === 'asparagus') {
newToolTip = "OK. I...