jQuery Plugin For Responsive Image Hotspot - hotSpot.js
File Size: | 237 KB |
---|---|
Views Total: | 22708 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

hotSpot.js is a lightweight jQuery plugin which can be used to annotate images with custom, animated, responsive hotspots. Click or hover the hotspot you will see more information about the image annotation in a tooltip popup. The plugin also has the ability to re-position the image hotspots on init and resize events.
How to use it:
1. Add hotspots to the image following the markup structure as these:
<div id="hotspotImg" class="responsive-hotspot-wrap"> <img src="image.jpg" class="img-responsive"> <div class="hot-spot" x="300" y="43"> <div class="circle"></div> <div class="tooltip"> <div class="img-row"> <img src="1.jpg"> </div> <div class="text-row"> <h4>Title 1</h4> <p>More Description</p> </div> </div> </div> <div class="hot-spot" x="1052" y="108"> <div class="circle"></div> <div class="tooltip"> <div class="img-row"> <img src="2.jpg"> </div> <div class="text-row"> <h4>Title 2</h4> <p>More Description</p> </div> </div> </div> ... </div>
2. The required CSS/CSS3 styles for the image hotspots.
/* Animation */ @-webkit-keyframes pulsate { 0% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.8; } 45% { -webkit-transform: scale(1.75); transform: scale(1.75); opacity: 0; } } @keyframes pulsate { 0% { -webkit-transform: scale(1); transform: scale(1); opacity: 0.8; } 45% { -webkit-transform: scale(1.75); transform: scale(1.75); opacity: 0; } } /* Hotspot */ #hotspotImg { background-color: #ededed; background-size: cover; background-position: center center; position: relative; } #hotspotImg .img-responsive { max-width: 100%; } #hotspotImg .hot-spot { position: absolute; width: 25px; height: 25px; top: 5px; left: 5px; text-align: center; background-color: rgba(229, 0, 137, 0.6); color: #fff; border-radius: 100%; cursor: pointer; transition: all .3s ease; } #hotspotImg .hot-spot .circle { display: block; position: absolute; top: 45%; left: 45%; width: 2em; height: 2em; margin: -1em auto auto -1em; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; border-radius: 50%; border: 1px solid #E5008A; opacity: 0; -webkit-animation: pulsate 3s ease-out infinite; animation: pulsate 3s ease-out infinite; } #hotspotImg .hot-spot .tooltip { background-color: rgba(58, 95, 150, 0.7); -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; color: #fff; display: none; font-size: 14px; opacity: 1.0; left: 0px; padding: 15px 5px; position: absolute; text-align: left; top: 30px; width: 280px; z-index: 999; } #hotspotImg .hot-spot .tooltip .img-row { padding: 10px; text-align: center; } #hotspotImg .hot-spot .tooltip .text-row { padding: 15px; } #hotspotImg .hot-spot .tooltip h4 { margin-bottom: 10px; border-bottom: 1px solid #ffffff; } #hotspotImg .hot-spot .tooltip p { font-size: 14px; line-height: 1.4em; margin-bottom: 10px; } #hotspotImg .hot-spot .tooltip p:last-child { margin-bottom: 0; }
3. Import jQuery JavaScript library and the jQuery hotSpot.js script into the html page.
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"> </script> <script src="js/jquery.hotspot.js"></script>
4. Initialize the plugin with default options.
$(document).ready (function() { if ($('#hotspotImg').length > 0) { $('#hotspotImg').hotSpot(); } });
5. Full plugin options to customize the image hotspots.
$('#hotspotImg').hotSpot({ // default selectors mainselector: '#hotspotImg', selector: '.hot-spot', imageselector: '.img-responsive', tooltipselector: '.tooltip', // or 'click' bindselector: 'hover' });
This awesome jQuery plugin is developed by skypluto. For more Advanced Usages, please check the demo page or visit the official website.