MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/demo.ncriptech.com/resturant/demo2/assets/js/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/demo.ncriptech.com/resturant/demo2/assets/js/viewport.jquery.js
/* ====================================================
 * jQuery Is In Viewport.
 * https://github.com/frontid/jQueryIsInViewport
 * Marcelo Iván Tosco (capynet)
 * Inspired on https://stackoverflow.com/a/40658647/1413049
 * ==================================================== */
! function($) {
    'use strict'

    var Class = function(el, cb) {
        this.$el = $(el);
        this.cb = cb;
        this.watch();
        return this;
    };

    Class.prototype = {

        /**
         * Checks if the element is in.
         *
         * @returns {boolean}
         */
        isIn: function isIn() {
            var _self = this;
            var $win = $(window);
            var elementTop = _self.$el.offset().top;
            var elementBottom = elementTop + _self.$el.outerHeight();
            var viewportTop = $win.scrollTop();
            var viewportBottom = viewportTop + $win.height();
            return elementBottom > viewportTop && elementTop < viewportBottom;
        },

        /**
         * Launch a callback indicating when the element is in and when is out.
         */
        watch: function() {
            var _self = this;
            var _isIn = false;

            $(window).on('resize scroll', function() {

                if (_self.isIn() && _isIn === false) {
                    _self.cb.call(_self.$el, 'entered');
                    _isIn = true;
                }

                if (_isIn === true && !_self.isIn()) {
                    _self.cb.call(_self.$el, 'leaved');
                    _isIn = false;
                }

            })
        }


    };

    // jQuery plugin.
    //-----------------------------------------------------------
    $.fn.isInViewport = function(cb) {
        return this.each(function() {
            var $element = $(this);
            var data = $element.data('isInViewport');
            if (!data) {
                $element.data('isInViewport', (new Class(this, cb)));
            }
        })
    }

}(window.jQuery);

MMCT - 2023