]> source.dussan.org Git - jquery-ui.git/commitdiff
spinner: added mousewheel plugin to trunk/external.
authorCa-Phun Ung <pazu2k@gmail.com>
Mon, 11 May 2009 04:29:30 +0000 (04:29 +0000)
committerCa-Phun Ung <pazu2k@gmail.com>
Mon, 11 May 2009 04:29:30 +0000 (04:29 +0000)
external/mousewheel/ChangeLog.markdown [new file with mode: 0755]
external/mousewheel/README.markdown [new file with mode: 0755]
external/mousewheel/jquery.mousewheel.js [new file with mode: 0755]
external/mousewheel/jquery.mousewheel.min.js [new file with mode: 0644]
external/mousewheel/test/index.html [new file with mode: 0755]

diff --git a/external/mousewheel/ChangeLog.markdown b/external/mousewheel/ChangeLog.markdown
new file mode 100755 (executable)
index 0000000..8dd106b
--- /dev/null
@@ -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 (executable)
index 0000000..7ec6d03
--- /dev/null
@@ -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 (executable)
index 0000000..b6b89ba
--- /dev/null
@@ -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 (file)
index 0000000..05ebb0a
--- /dev/null
@@ -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 (executable)
index 0000000..ce716a4
--- /dev/null
@@ -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>