diff options
author | Ca-Phun Ung <pazu2k@gmail.com> | 2009-05-11 04:29:30 +0000 |
---|---|---|
committer | Ca-Phun Ung <pazu2k@gmail.com> | 2009-05-11 04:29:30 +0000 |
commit | 2291be6a65f8b0a23ec1cf44546cda0bc7147423 (patch) | |
tree | b77a3d9952560692b1a3de811de3416fe7ae4123 /external/mousewheel | |
parent | f6b219fdc4feaff1bb236f79590809db829e922e (diff) | |
download | jquery-ui-2291be6a65f8b0a23ec1cf44546cda0bc7147423.tar.gz jquery-ui-2291be6a65f8b0a23ec1cf44546cda0bc7147423.zip |
spinner: added mousewheel plugin to trunk/external.
Diffstat (limited to 'external/mousewheel')
-rwxr-xr-x | external/mousewheel/ChangeLog.markdown | 49 | ||||
-rwxr-xr-x | external/mousewheel/README.markdown | 11 | ||||
-rwxr-xr-x | external/mousewheel/jquery.mousewheel.js | 60 | ||||
-rw-r--r-- | external/mousewheel/jquery.mousewheel.min.js | 11 | ||||
-rwxr-xr-x | external/mousewheel/test/index.html | 204 |
5 files changed, 335 insertions, 0 deletions
diff --git a/external/mousewheel/ChangeLog.markdown b/external/mousewheel/ChangeLog.markdown new file mode 100755 index 000000000..8dd106beb --- /dev/null +++ b/external/mousewheel/ChangeLog.markdown @@ -0,0 +1,49 @@ +# Mouse Wheel ChangeLog + + +# 3.0.2 + +* Fixed delta being opposite value in latest Opera +* No longer fix pageX, pageY for older mozilla browsers +* Removed browser detection +* Cleaned up the code + + +# 3.0.1 + +* Bad release... creating a new release due to plugins.jquery.com issue :( + + +# 3.0 + +* Uses new special events API in jQuery 1.2.2+ +* You can now treat "mousewheel" as a normal event and use .bind, .unbind and .trigger +* Using jQuery.data API for expandos + + +# 2.2 + +* Fixed pageX, pageY, clientX and clientY event properties for Mozilla based browsers + + +# 2.1.1 + +* Updated to work with jQuery 1.1.3 +* Used one instead of bind to do unload event for clean up. + + +# 2.1 + +* Fixed an issue with the unload handler + + +# 2.0 + +* Major reduction in code size and complexity (internals have change a whole lot) + + +# 1.0 + +* Fixed Opera issue +* Fixed an issue with children elements that also have a mousewheel handler +* Added ability to handle multiple handlers
\ No newline at end of file diff --git a/external/mousewheel/README.markdown b/external/mousewheel/README.markdown new file mode 100755 index 000000000..7ec6d039b --- /dev/null +++ b/external/mousewheel/README.markdown @@ -0,0 +1,11 @@ +# jQuery Mouse Wheel Plugin + +A jQuery plugin that adds cross-browser mouse wheel support. + +The latest stable release can be downloaded from the [project page](http://plugins.jquery.com/project/mousewheel) + +## License + +The mousewheel plugin is dual licensed *(just like jQuery)* under the [MIT](http://www.opensource.org/licenses/mit-license.php) and [GPL](http://www.opensource.org/licenses/gpl-license.php) licenses. + +Copyright (c) 2009 [Brandon Aaron](http://brandonaaron.net)
\ No newline at end of file diff --git a/external/mousewheel/jquery.mousewheel.js b/external/mousewheel/jquery.mousewheel.js new file mode 100755 index 000000000..b6b89ba60 --- /dev/null +++ b/external/mousewheel/jquery.mousewheel.js @@ -0,0 +1,60 @@ +/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * + * Version: 3.0.2 + * + * Requires: 1.2.2+ + */ + +(function($) { + +var types = ['DOMMouseScroll', 'mousewheel']; + +$.event.special.mousewheel = { + setup: function() { + if ( this.addEventListener ) + for ( var i=types.length; i; ) + this.addEventListener( types[--i], handler, false ); + else + this.onmousewheel = handler; + }, + + teardown: function() { + if ( this.removeEventListener ) + for ( var i=types.length; i; ) + this.removeEventListener( types[--i], handler, false ); + else + this.onmousewheel = null; + } +}; + +$.fn.extend({ + mousewheel: function(fn) { + return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); + }, + + unmousewheel: function(fn) { + return this.unbind("mousewheel", fn); + } +}); + + +function handler(event) { + var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true; + + event = $.event.fix(event || window.event); + event.type = "mousewheel"; + + if ( event.wheelDelta ) delta = event.wheelDelta/120; + if ( event.detail ) delta = -event.detail/3; + + // Add events and delta to the front of the arguments + args.unshift(event, delta); + + return $.event.handle.apply(this, args); +} + +})(jQuery);
\ No newline at end of file diff --git a/external/mousewheel/jquery.mousewheel.min.js b/external/mousewheel/jquery.mousewheel.min.js new file mode 100644 index 000000000..05ebb0a99 --- /dev/null +++ b/external/mousewheel/jquery.mousewheel.min.js @@ -0,0 +1,11 @@ +/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * + * Version: 3.0.2 + * + * Requires: 1.2.2+ + */ +(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);
\ No newline at end of file diff --git a/external/mousewheel/test/index.html b/external/mousewheel/test/index.html new file mode 100755 index 000000000..ce716a40e --- /dev/null +++ b/external/mousewheel/test/index.html @@ -0,0 +1,204 @@ +<!doctype html> +<html> + <head> + <title>Testing mousewheel plugin</title> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> + <script type="text/javascript" src="../jquery.mousewheel.js"></script> + + <style> + #test1 { + background-color: #000; + width: 100px; + height: 100px; + color: #fff; + float: left; + } + + #test2 { + background-color: #333; + width: 100px; + height: 100px; + color: #fff; + float: left; + } + + #test3 { + background-color: #666; + width: 100px; + height: 100px; + color: #fff; + float: left; + } + + #test4 { + background-color: #000; + width: 100px; + height: 100px; + color: #fff; + float: left; + } + + #test5 { + background-color: #333; + padding: 5px; + width: 400px; + height: 400px; + color: #fff; + float: left; + } + + #test6 { + background-color: #666; + padding: 5px; + width: 250px; + height: 250px; + color: #fff; + float: left; + } + + #test7 { + background-color: #000; + padding: 5px; + width: 100px; + height: 100px; + color: #fff; + float: left; + } + + #forceScroll { + clear: both; + height: 1000px; + } + + #logger { + position: absolute; + top: 395px; + left: 12px; + width: 380px; + height: 290px; + overflow: auto; + } + </style> + <script type="text/javascript"> + $(function() { + $('#userAgent').html(navigator.userAgent); + + + $('#test1') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test1: up ('+delta+')'); + else if (delta < 0) + log('#test1: down ('+delta+')'); + + log('pageX: ' + event.pageX + ' pageY: ' + event.pageY ); + }); + + $('#test2') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test2: up ('+delta+')'); + else if (delta < 0) + log('#test2: down ('+delta+')'); + return false; // prevent default + }); + + $('#test3') + .hover(function() { log('#test3: mouseover'); }, function() { log('#test3: mouseout'); }) + .mousewheel(function(event, delta) { + log('#test3: I should not have been logged'); + }) + .unmousewheel(); + + var testRemoval = function(event, delta) { + log('#test4: I should not have been logged'); + }; + + $('#test4') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test4: up ('+delta+')'); + else if (delta < 0) + log('#test4: down ('+delta+')'); + return false; + }) + .mousewheel(testRemoval) + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test4: up ('+delta+') from 2nd handler'); + else if (delta < 0) + log('#test4: down ('+delta+') from 2nd handler'); + return false; + }) + .unmousewheel(testRemoval); + + $('#test5') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test5: up ('+delta+')'); + else if (delta < 0) + log('#test5: down ('+delta+')'); + + event.stopPropagation(); + event.preventDefault(); + }); + + $('#test6') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test6: up ('+delta+')'); + else if (delta < 0) + log('#test6: down ('+delta+')'); + + event.stopPropagation(); + event.preventDefault(); + }); + + $('#test7') + .mousewheel(function(event, delta) { + if (delta > 0) + log('#test7: up ('+delta+')'); + else if (delta < 0) + log('#test7 down ('+delta+')'); + + event.preventDefault(); + }); + + function log(msg) { + $('#logger').append(msg+'<br>').scrollTop(999999); + }; + }); + </script> + </head> + <body> + <h1 id="banner">jQuery mousewheel.js - Test</h1> + <h2 id="userAgent"></h2> + + <ul> + <li><strong>Test1</strong> is just using the plain on mousewheel() with a function passed in and does not prevent default. (Also logs the value of pageX and pageY event properties.)</li> + <li><strong>Test2</strong> should prevent the default action.</li> + <li><strong>Test3</strong> should only log a mouseover and mouseout event. Testing unmousewheel().</li> + <li><strong>Test4</strong> has two handlers.</li> + <li><strong>Test5</strong> is like Test2 but has children. The children should not scroll until mousing over them.</li> + <li><strong>Test6</strong> is like Test5 but should not scroll children or parents.</li> + <li><strong>Test7</strong> is like Test6 but has no children. It will propagate the event and scroll test 6 as well.</li> + </ul> + + + <div id="test1"><p>Test1</p></div> + <div id="test2"><p>Test2</p></div> + <div id="test3"><p>Test3</p></div> + <div id="test4"><p>Test4</p></div> + <div id="test5"> + <p>Test5</p> + <div id="test6"> + <p>Test6</p> + <div id="test7"><p>Test7</p></div> + </div> + </div> + + <div id="logger"></div> + + <div id="forceScroll"></div> + </body> +</html> |