Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/clinic.corals.io/public/assets/front/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/clinic.corals.io/public/assets/front/js/jquery.hotspot.js
/**
 * jQuery plugin for Responsive Hotspot
 *
 * Author: SK Lam
 */
(function () {
    'use strict';

    /*
        Reposition the HotSpots during init and resize windows
    */
    function _positionHotspots (options) {
        var imageWidth = $(options.mainselector + ' ' + options.imageselector).
            prop('naturalWidth');
        var imageHeight = $(options.mainselector + ' ' + options.imageselector).
            prop('naturalHeight');

        var bannerWidth = $(options.mainselector).width();
        var bannerHeight = $(options.mainselector).height();
        $(options.selector).each(function () {
            var xPos = $(this).attr('data-x');
            var yPos = $(this).attr('data-y');
            xPos = xPos / imageWidth * bannerWidth;
            yPos = yPos / imageHeight * bannerHeight;

            $(this).css({
                'top': yPos,
                'left': xPos,
                'display': 'block',
            });
            $(this).children(options.tooltipselector).css({
                'margin-left': -($(this).
                    children(options.tooltipselector).
                    width() / 2),
            });
        });
    }

    // Bind the events (hover or click) for the tooltip
    function _bindHotspots (e, options) {
        if ($(e).children(options.tooltipselector).is(':visible')) {
            $(e).children(options.tooltipselector).css('display', 'none');
            $(e).removeClass('hotspot-tooltip-open');
        } else {
            $(options.selector + ' ' + options.tooltipselector).
                css('display', 'none');
            $(e).children(options.tooltipselector).css('display', 'block');
            $(e).addClass('hotspot-tooltip-open');
            if ($(window).width() -
                ($(e).children(options.tooltipselector).offset().left +
                    $(e).children(options.tooltipselector).outerWidth()) < 0) {
                $(e).children(options.tooltipselector).css({
                    'right': '0',
                    'left': 'auto',
                });
            }
        }
    }

    $.fn.hotSpot = function (options) {

        // Extend our default options with those provided.
        // Note that the first argument to extend is an empty
        // object – this is to keep from overriding our "defaults" object.
        var _options = $.extend({}, $.fn.hotSpot.defaults, options);

        // Position each hotspot
        this.each(function () {
            _positionHotspots.call($(this), _options);
        });

        // Bind the windows resize event to recalculate the hotspot position
        $(window).resize(function () {
            this.each(function () {
                _positionHotspots.call($(this), _options);
            });
        }.bind(this));

        // Bind the hover/click for selector to show the tooltip
        switch (_options.bindselector) {
            case 'click':
                this.find(_options.selector).
                    bind('click', function (e) {
                        _bindHotspots(e.currentTarget, _options);
                    });
                this.find(_options.selector).addClass('hotspot-on-click');
                break;
            case 'hover':
                this.find(_options.selector).
                    hover(function (e) {
                        _bindHotspots(e.currentTarget, _options);
                    });
                break;
            default:
                break;
        }

        return this;
    };

    // Plugin defaults
    $.fn.hotSpot.defaults = {
        mainselector: '.hotspot-img',
        selector: '.hot-spot',
        imageselector: '.img-responsive',
        tooltipselector: '.tooltip',
        bindselector: 'hover',
    };
}(jQuery));

Spamworldpro Mini