server/php/basic/public_html/static/lib/jquery-mousewheel/jquery.mousewheel.js
author ymh <ymh.work@gmail.com>
Mon, 07 Sep 2015 16:34:30 +0200
changeset 495 444b80998255
parent 442 adb907bba956
permissions -rw-r--r--
update client version + small correction in dojoConfig to load ckeditor jquery adapter
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
     1
/*!
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
     2
 * jQuery Mousewheel 3.1.13
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 *
495
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
     4
 * Copyright jQuery Foundation and other contributors
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
     5
 * Released under the MIT license
444b80998255 update client version + small correction in dojoConfig to load ckeditor jquery adapter
ymh <ymh.work@gmail.com>
parents: 442
diff changeset
     6
 * http://jquery.org/license
442
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
(function (factory) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    if ( typeof define === 'function' && define.amd ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        // AMD. Register as an anonymous module.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        define(['jquery'], factory);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    } else if (typeof exports === 'object') {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        // Node/CommonJS style for Browserify
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        module.exports = factory;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        // Browser globals
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        factory(jQuery);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
}(function ($) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        slice  = Array.prototype.slice,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        nullLowestDeltaTimeout, lowestDelta;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    if ( $.event.fixHooks ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        for ( var i = toFix.length; i; ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    var special = $.event.special.mousewheel = {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        version: '3.1.12',
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        setup: function() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            if ( this.addEventListener ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                for ( var i = toBind.length; i; ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
                    this.addEventListener( toBind[--i], handler, false );
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
                this.onmousewheel = handler;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
            // Store the line height and page height for this particular element
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        teardown: function() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            if ( this.removeEventListener ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                for ( var i = toBind.length; i; ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                    this.removeEventListener( toBind[--i], handler, false );
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
            } else {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
                this.onmousewheel = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            // Clean up the data we added to the element
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            $.removeData(this, 'mousewheel-line-height');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            $.removeData(this, 'mousewheel-page-height');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
        getLineHeight: function(elem) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            var $elem = $(elem),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            if (!$parent.length) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
                $parent = $('body');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        getPageHeight: function(elem) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            return $(elem).height();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        settings: {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            normalizeOffset: true  // calls getBoundingClientRect for each event
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    };
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    $.fn.extend({
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
        mousewheel: function(fn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        },
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        unmousewheel: function(fn) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
            return this.unbind('mousewheel', fn);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
    });
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    function handler(event) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        var orgEvent   = event || window.event,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
            args       = slice.call(arguments, 1),
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            delta      = 0,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
            deltaX     = 0,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            deltaY     = 0,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
            absDelta   = 0,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
            offsetX    = 0,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
            offsetY    = 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
        event = $.event.fix(orgEvent);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
        event.type = 'mousewheel';
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
        // Old school scrollwheel delta
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            deltaX = deltaY * -1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
            deltaY = 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
        delta = deltaY === 0 ? deltaX : deltaY;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        // New school wheel delta (wheel event)
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
        if ( 'deltaY' in orgEvent ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            deltaY = orgEvent.deltaY * -1;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
            delta  = deltaY;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
        if ( 'deltaX' in orgEvent ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
            deltaX = orgEvent.deltaX;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
            if ( deltaY === 0 ) { delta  = deltaX * -1; }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
        // No change actually happened, no reason to go any further
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
        if ( deltaY === 0 && deltaX === 0 ) { return; }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
        // Need to convert lines and pages to pixels if we aren't already in pixels
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
        // There are three delta modes:
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
        //   * deltaMode 0 is by pixels, nothing to do
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
        //   * deltaMode 1 is by lines
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
        //   * deltaMode 2 is by pages
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
        if ( orgEvent.deltaMode === 1 ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            var lineHeight = $.data(this, 'mousewheel-line-height');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
            delta  *= lineHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
            deltaY *= lineHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
            deltaX *= lineHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
        } else if ( orgEvent.deltaMode === 2 ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
            var pageHeight = $.data(this, 'mousewheel-page-height');
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
            delta  *= pageHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            deltaY *= pageHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            deltaX *= pageHeight;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        // Store lowest absolute delta to normalize the delta values
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
        if ( !lowestDelta || absDelta < lowestDelta ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
            lowestDelta = absDelta;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
            // Adjust older deltas if necessary
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
                lowestDelta /= 40;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
            }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
        // Adjust older deltas if necessary
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
            // Divide all the things by 40!
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
            delta  /= 40;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
            deltaX /= 40;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
            deltaY /= 40;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        // Get a whole, normalized value for the deltas
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
        // Normalise offsetX and offsetY properties
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
            var boundingRect = this.getBoundingClientRect();
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
            offsetX = event.clientX - boundingRect.left;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
            offsetY = event.clientY - boundingRect.top;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
        }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
        // Add information to the event object
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
        event.deltaX = deltaX;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        event.deltaY = deltaY;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
        event.deltaFactor = lowestDelta;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
        event.offsetX = offsetX;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        event.offsetY = offsetY;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
        // Go ahead and set deltaMode to 0 since we converted to pixels
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
        // Although this is a little odd since we overwrite the deltaX/Y
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        // properties with normalized deltas.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
        event.deltaMode = 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
        // Add event and delta to the front of the arguments
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
        args.unshift(event, delta, deltaX, deltaY);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
        // Clearout lowestDelta after sometime to better
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
        // handle multiple device types that give different
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
        // a different lowestDelta
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
        // Ex: trackpad = 3 and mouse wheel = 120
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
        return ($.event.dispatch || $.event.handle).apply(this, args);
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
    function nullLowestDelta() {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
        lowestDelta = null;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
    function shouldAdjustOldDeltas(orgEvent, absDelta) {
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        // If this is an older event and the delta is divisable by 120,
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
        // then we are assuming that the browser is treating this as an
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
        // older mouse wheel event and that we should divide the deltas
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
        // by 40 to try and get a more usable deltaFactor.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
        // Side note, this actually impacts the reported scroll distance
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
        // in older browsers and can cause scrolling to be slower than native.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
    }
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
adb907bba956 add server php example
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
}));