From 738eabcd49a3a66ad750833da5c0348137447c13 Mon Sep 17 00:00:00 2001 From: Philippe Masset Date: Tue, 9 Apr 2013 16:05:55 +0200 Subject: [PATCH 01/59] Prevent errors in browsers that don't support canvases. Added feature detection to prevent the plugin from executing if the browser doesn't support canvases. Added the `error` hook, triggered if the browser doesn't support canvases. --- js/jquery.knob.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 32caa3d..ef3ab5f 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -106,7 +106,8 @@ draw : null, // function () {} change : null, // function (value) {} cancel : null, // function () {} - release : null // function (value) {} + release : null, // function (value) {} + error : null // function () {} }, this.o ); @@ -151,7 +152,13 @@ this.$c = $(''); - this.c = this.$c[0].getContext("2d"); + + this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null; + + if (!this.c) { + this.o.error && this.o.error(); + return; + } this.$ .wrap($('
Date: Thu, 27 Jun 2013 23:16:02 +0200 Subject: [PATCH 04/59] Support for HiDPI screens #99 #93 #61 --- js/jquery.knob.js | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index ef3ab5f..ae36b6b 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -63,6 +63,7 @@ this.cH = null; // change hook this.eH = null; // cancel hook this.rH = null; // release hook + this.scale = 1; // scale factor this.run = function () { var cf = function (e, conf) { @@ -166,6 +167,21 @@ this.o.height + 'px;">
')) .before(this.$c); + this.scale = (window.devicePixelRatio || 1) / + ( + this.c.webkitBackingStorePixelRatio || + this.c.mozBackingStorePixelRatio || + this.c.msBackingStorePixelRatio || + this.c.oBackingStorePixelRatio || + this.c.backingStorePixelRatio || 1 + ); + if (this.scale !== 1) { + this.$c[0].width = this.$c[0].width * this.scale; + this.$c[0].height = this.$c[0].height * this.scale; + this.$c.width(this.o.width); + this.$c.height(this.o.height); + } + if (this.v instanceof Object) { this.cv = {}; this.copy(this.v, this.cv); @@ -196,8 +212,9 @@ var d = true, c = document.createElement('canvas'); - c.width = s.o.width; - c.height = s.o.height; + c.width = s.o.width * s.scale; + c.height = s.o.height * s.scale; + s.g = c.getContext('2d'); s.clear(); @@ -551,7 +568,7 @@ this.$.val(this.v); this.w2 = this.o.width / 2; this.cursorExt = this.o.cursor / 100; - this.xy = this.w2; + this.xy = this.w2 * this.scale; this.lineWidth = this.xy * this.o.thickness; this.lineCap = this.o.lineCap; this.radius = this.xy - this.lineWidth / 2; From bc468f9540e507e6ba557bc754e1355d9d7f4f9d Mon Sep 17 00:00:00 2001 From: fadomire Date: Tue, 27 Aug 2013 09:54:13 +0200 Subject: [PATCH 05/59] excanvas support for IE7/8 compatibility added excanvas support code from @buradleix https://github.com/buradleix/jQuery-Knob/ --- js/jquery.knob.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index ae36b6b..a0b4729 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -150,10 +150,15 @@ (!this.o.displayInput) && this.$.hide(); - this.$c = $(''); + this.$c = $(document.createElement('canvas')).attr({ + width: this.o.width, + height: this.o.height + }); + if (typeof G_vmlCanvasManager !== 'undefined') { + G_vmlCanvasManager.initElement(this.$c[0]); + } + this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null; if (!this.c) { @@ -209,13 +214,9 @@ this._draw = function () { // canvas pre-rendering - var d = true, - c = document.createElement('canvas'); - - c.width = s.o.width * s.scale; - c.height = s.o.height * s.scale; + var d = true; - s.g = c.getContext('2d'); + s.g = s.c; s.clear(); @@ -224,8 +225,6 @@ (d !== false) && s.draw(); - s.c.drawImage(c, 0, 0); - c = null; }; this._touch = function (e) { @@ -682,4 +681,4 @@ ).parent(); }; -})(jQuery); \ No newline at end of file +})(jQuery); From 6dca8a7a79ade47c70835b06b2509ce688ecd3b9 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 2 Sep 2013 22:13:19 +0200 Subject: [PATCH 06/59] font and fontWeight support #100 @kylestetz @asnyder --- README.md | 0 index.html | 0 js/jquery.knob.js | 10 ++++++---- knob.jquery.json | 0 4 files changed, 6 insertions(+), 4 deletions(-) mode change 100644 => 100755 README.md mode change 100644 => 100755 index.html mode change 100644 => 100755 js/jquery.knob.js mode change 100644 => 100755 knob.jquery.json diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/index.html b/index.html old mode 100644 new mode 100755 diff --git a/js/jquery.knob.js b/js/jquery.knob.js old mode 100644 new mode 100755 index a0b4729..79b4f0e --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -48,7 +48,7 @@ this.o = null; // array of options this.$ = null; // jQuery wrapped element this.i = null; // mixed HTMLInputElement or array of HTMLInputElement - this.g = null; // 2D graphics context for 'pre-rendering' + this.g = null; // deprecated 2D graphics context for 'pre-rendering' this.v = null; // value ; mixed array or integer this.cv = null; // change value ; not commited value this.x = 0; // canvas x position @@ -100,6 +100,8 @@ displayPrevious : this.$.data('displayprevious'), fgColor : this.$.data('fgcolor') || '#87CEEB', inputColor: this.$.data('inputcolor') || this.$.data('fgcolor') || '#87CEEB', + font: this.$.data('font') || 'Arial', + fontWeight: this.$.data('font-weight') || 'bold', inline : false, step : this.$.data('step') || 1, @@ -154,13 +156,13 @@ width: this.o.width, height: this.o.height }); - + if (typeof G_vmlCanvasManager !== 'undefined') { G_vmlCanvasManager.initElement(this.$c[0]); } this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null; - + if (!this.c) { this.o.error && this.o.error(); return; @@ -602,7 +604,7 @@ ,'margin-left' : '-' + ((this.o.width * 3 / 4 + 2) >> 0) + 'px' ,'border' : 0 ,'background' : 'none' - ,'font' : 'bold ' + ((this.o.width / s) >> 0) + 'px Arial' + ,'font' : this.o.fontWeight + ' ' + ((this.o.width / s) >> 0) + 'px ' + this.o.font ,'text-align' : 'center' ,'color' : this.o.inputColor || this.o.fgColor ,'padding' : '0px' diff --git a/knob.jquery.json b/knob.jquery.json old mode 100644 new mode 100755 From ac5e0b8d478b2b17ed22e40849c4801b49db7e15 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 2 Sep 2013 22:18:03 +0200 Subject: [PATCH 07/59] font and fontWeight support #100 @kylestetz @asnyder --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2b33108..8c6dd33 100755 --- a/README.md +++ b/README.md @@ -50,6 +50,8 @@ UI : * displayPrevious : default=false | true=displays the previous value with transparency. * fgColor : foreground color. * inputColor : input value (number) color. +* font : font family. +* fontWeight : font weight. * bgColor : background color. Hooks From e83f4fb9f92837caa6402eac72ccf5480fe0970a Mon Sep 17 00:00:00 2001 From: root Date: Fri, 13 Sep 2013 01:01:18 +0200 Subject: [PATCH 08/59] First implem of responsive support #98 --- index.html | 18 ++++++++ js/jquery.knob.js | 106 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 98 insertions(+), 26 deletions(-) diff --git a/index.html b/index.html index 67b1530..d003bb0 100755 --- a/index.html +++ b/index.html @@ -205,6 +205,24 @@

jQuery Knob

+
+

× Responsive

+
+data-width="80%"
+            
+
+ + Current div width is 30% of window width.
+ Knob width is 80% of current div.
+ Knob width is 80% of 30% of window width.
+ Test resizing window. +
+
+
+ +
+
+
+ + + - + + +``` Options ------- Options are provided as attributes 'data-option': - +```html + +``` ... or in the "knob()" call : - $(".dial").knob({ - 'min':-50 - ,'max':50 - }); +```javascript +$(".dial").knob({ + 'min':-50, + 'max':50 +}); +``` The following options are supported : @@ -58,11 +64,13 @@ UI : Hooks ------- - + 'release' : function (v) { /*make something*/ } + }); + +``` * 'release' : executed on release @@ -92,40 +100,44 @@ The scope (this) of each hook function is the current Knob instance (refer to th Example ------- - +```html + - - + 'change' : function (v) { console.log(v); } + }); + +``` Dynamically configure ------- - + } + ); + +``` Set the value ------- - + +``` Supported browser ------- From 4fb9bab8d87c4e705cdb1ea47d00b5190191b29e Mon Sep 17 00:00:00 2001 From: Felix Milea-Ciobanu Date: Tue, 14 Jul 2015 10:54:38 -0600 Subject: [PATCH 54/59] added basic package.json for npm package --- package.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..28b7fb1 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "jquery-knob", + "version": "1.2.11", + "description": "Nice, downward compatible, touchable, jQuery dial", + "main": "dist/jquery.knob.min.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/aterrien/jQuery-Knob.git" + }, + "keywords": [ + "jquery", + "knob", + "dial" + ], + "author": "Anthony Terrien", + "license": "MIT", + "bugs": { + "url": "https://github.com/aterrien/jQuery-Knob/issues" + }, + "homepage": "https://github.com/aterrien/jQuery-Knob#readme" +} From cf505336e7c50e3b6eae1210d321d27832d5ff90 Mon Sep 17 00:00:00 2001 From: legitalk Date: Wed, 14 Oct 2015 10:04:42 +0200 Subject: [PATCH 55/59] Update jquery.knob.js Missing ";" --- js/jquery.knob.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5294ffa..44220f2 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -472,7 +472,7 @@ // Utils this.h2rgba = function (h, a) { var rgb; - h = h.substring(1,7) + h = h.substring(1,7); rgb = [ parseInt(h.substring(0,2), 16), parseInt(h.substring(2,4), 16), From 28bb63e72a2de1571fd6d1e25d9f1855d820fa4a Mon Sep 17 00:00:00 2001 From: legitalk Date: Wed, 14 Oct 2015 10:11:21 +0200 Subject: [PATCH 56/59] Update Missing 3x ";" --- js/jquery.knob.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 5294ffa..8bae662 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -297,7 +297,7 @@ } return this; - } + }; this._draw = function () { @@ -472,7 +472,7 @@ // Utils this.h2rgba = function (h, a) { var rgb; - h = h.substring(1,7) + h = h.substring(1,7); rgb = [ parseInt(h.substring(0,2), 16), parseInt(h.substring(2,4), 16), @@ -669,7 +669,7 @@ ); this.$c.bind("mousewheel DOMMouseScroll", mw); - this.$.bind("mousewheel DOMMouseScroll", mw) + this.$.bind("mousewheel DOMMouseScroll", mw); }; this.init = function () { From 148307aa5475980dbc85133f16e7cf88cf03fde8 Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Fri, 23 Oct 2015 16:58:23 +0100 Subject: [PATCH 57/59] adding height to dial documentation --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d20c58a..2257ff4 100755 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ UI : * thickness : gauge thickness. * lineCap : gauge stroke endings. | default=butt, round=rounded line endings * width : dial width. +* height : dial height. * displayInput : default=true | false=hide input. * displayPrevious : default=false | true=displays the previous value with transparency. * fgColor : foreground color. From fa1c321fd1a9a471130a1a56746462c8330bcf7b Mon Sep 17 00:00:00 2001 From: aterrien Date: Tue, 3 Nov 2015 21:13:28 +0000 Subject: [PATCH 58/59] Release 1.2.12, fix bower version and add npm package --- bower.json | 2 +- js/jquery.knob.js | 2 +- knob.jquery.json | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index 7969769..ef03e4e 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aterrien/jQuery-Knob", - "version": "1.2.11", + "version": "1.2.12", "main": "js/jquery.knob.js", "description": "Nice, downward compatible, touchable, jQuery dial.", "license": "MIT", diff --git a/js/jquery.knob.js b/js/jquery.knob.js index 8bae662..792313c 100644 --- a/js/jquery.knob.js +++ b/js/jquery.knob.js @@ -2,7 +2,7 @@ /** * Downward compatible, touchable dial * - * Version: 1.2.11 + * Version: 1.2.12 * Requires: jQuery v1.7+ * * Copyright (c) 2012 Anthony Terrien diff --git a/knob.jquery.json b/knob.jquery.json index 26564ad..c442552 100755 --- a/knob.jquery.json +++ b/knob.jquery.json @@ -9,7 +9,7 @@ "ui", "input" ], - "version": "1.2.11", + "version": "1.2.12", "author": { "name": "Anthony Terrien", "url": "https://github.com/aterrien" diff --git a/package.json b/package.json index 28b7fb1..de9f0ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-knob", - "version": "1.2.11", + "version": "1.2.12", "description": "Nice, downward compatible, touchable, jQuery dial", "main": "dist/jquery.knob.min.js", "scripts": { From 755309e933d326ffaa5a2d758dc377147b766515 Mon Sep 17 00:00:00 2001 From: Anthony Terrien Date: Wed, 16 Dec 2015 21:12:42 +0100 Subject: [PATCH 59/59] Changed bower package name to jquery-knob --- bower.json | 4 ++-- knob.jquery.json | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index ef03e4e..1eeb316 100755 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { - "name": "aterrien/jQuery-Knob", - "version": "1.2.12", + "name": "jquery-knob", + "version": "1.2.13", "main": "js/jquery.knob.js", "description": "Nice, downward compatible, touchable, jQuery dial.", "license": "MIT", diff --git a/knob.jquery.json b/knob.jquery.json index c442552..01a9063 100755 --- a/knob.jquery.json +++ b/knob.jquery.json @@ -9,7 +9,7 @@ "ui", "input" ], - "version": "1.2.12", + "version": "1.2.13", "author": { "name": "Anthony Terrien", "url": "https://github.com/aterrien" diff --git a/package.json b/package.json index de9f0ce..fbb4245 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-knob", - "version": "1.2.12", + "version": "1.2.13", "description": "Nice, downward compatible, touchable, jQuery dial", "main": "dist/jquery.knob.min.js", "scripts": {