server/php/basic/public_html/static/lib/jquery-mousewheel/jquery.mousewheel.js
author durandn
Thu, 21 Apr 2016 15:18:19 +0200
changeset 605 13d355fd09bf
parent 495 444b80998255
permissions -rw-r--r--
updated uri to allow optional trailing slash on single resource URIs (django automatic redirects don't carry over the Authorization header that can sometimes be needed, for instance with OAuth)
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
}));