Changeset 72077 in spip-zone for _libs_


Ignore:
Timestamp:
Apr 16, 2013, 11:13:27 AM (7 years ago)
Author:
kent1@…
Message:

Une version qui semble un peu mieux fonctionner

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _libs_/farbtastic/farbtastic.js

    r72075 r72077  
    11// $Id: farbtastic.js,v 1.3 2009/01/08 22:53:01 unconed Exp $
    22// Originaly from acko : http://acko.net/dev/farbtastic
    3 // Modified by kent1 for new jQuery compatibility
    43// Added iPad compatibility : https://github.com/F1LT3R/farbtastic-color-picker
    5 // Farbtastic 1.4.0
    6 
    7 jQuery.fn.farbtastic = function (callback) {
     4// Merged all modifications of : http://code.google.com/p/farbtastic/source/browse/branches/farbtastic-1/farbtastic.js
     5(function($) {
     6       
     7$.fn.farbtastic = function (callback) {
    88  $.farbtastic(this, callback);
    99  return this;
    1010};
    1111
    12 jQuery.farbtastic = function (container, callback) {
     12$.farbtastic = function (container, callback) {
    1313  var container = $(container).get(0);
    14   return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
     14  return container.farbtastic || (container.farbtastic = new $._farbtastic(container, callback));
    1515};
    1616
    17 jQuery._farbtastic = function (container, callback) {
     17$._farbtastic = function (container, callback) {
    1818  // Store farbtastic object
    1919  var fb = this;
     
    6666    }
    6767    return this;
    68   }
     68  };
     69 
    6970  fb.updateValue = function (event) {
    7071    if (this.value && this.value != fb.color) {
    7172      fb.setColor(this.value);
    7273    }
    73   }
     74  };
    7475
    7576  /**
     
    8586    }
    8687    return this;
    87   }
     88  };
    8889
    8990  /**
     
    9697    fb.updateDisplay();
    9798    return this;
    98   }
     99  };
    99100
    100101  /////////////////////////////////////////////////////
     
    105106   */
    106107  fb.widgetCoords = function (event) {
    107     var x, y;
    108     var el = event.target || event.srcElement;
    109     var reference = fb.wheel;
    110 
    111     if (typeof event.offsetX != 'undefined') {
    112       // Use offset coordinates and find common offsetParent
    113       var pos = { x: event.offsetX, y: event.offsetY };
    114 
    115       // Send the coordinates upwards through the offsetParent chain.
    116       var e = el;
    117       while (e) {
    118         e.mouseX = pos.x;
    119         e.mouseY = pos.y;
    120         pos.x += e.offsetLeft;
    121         pos.y += e.offsetTop;
    122         e = e.offsetParent;
    123       }
    124 
    125       // Look for the coordinates starting from the wheel widget.
    126       var e = reference;
    127       var offset = { x: 0, y: 0 }
    128       while (e) {
    129         if (typeof e.mouseX != 'undefined') {
    130           x = e.mouseX - offset.x;
    131           y = e.mouseY - offset.y;
    132           break;
    133         }
    134         offset.x += e.offsetLeft;
    135         offset.y += e.offsetTop;
    136         e = e.offsetParent;
    137       }
    138 
    139       // Reset stored coordinates
    140       e = el;
    141       while (e) {
    142         e.mouseX = undefined;
    143         e.mouseY = undefined;
    144         e = e.offsetParent;
    145       }
    146     }
    147     else {
    148       // Use absolute coordinates
    149       var pos = fb.absolutePosition(reference);
    150       x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
    151       y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
    152     }
    153     // Subtract distance to middle
    154     return { x: x - fb.width / 2, y: y - fb.width / 2 };
    155   }
     108    var offset = $(fb.wheel).offset();
     109    return { x: (event.pageX - offset.left) - fb.width / 2, y: (event.pageY - offset.top) - fb.width / 2 };
     110  };
    156111
    157112  /**
     
    167122    fb.mousemove(event);
    168123    return false;
    169   }
     124  };
    170125
    171126  /**
     
    175130    var e = e.originalEvent.touches.item(0);
    176131    return e;
    177   }
     132  };
    178133
    179134  /**
     
    184139    event.preventDefault();
    185140    return false;
    186   }
     141  };
    187142
    188143  /**
     
    195150    event.preventDefault();
    196151    return false;
    197   }
    198 
     152  };
    199153
    200154  /**
     
    217171    }
    218172    return false;
    219   }
     173  };
    220174
    221175  /**
     
    227181    $(document).unbind('mouseup', fb.mouseup);
    228182    document.dragging = false;
    229   }
     183  };
    230184
    231185  /**
     
    266220      fb.callback.call(fb, fb.color);
    267221    }
    268   }
    269 
    270   /**
    271    * Get absolute position of element
    272    */
    273   fb.absolutePosition = function (el) {
    274     var r = { x: el.offsetLeft, y: el.offsetTop };
    275     // Resolve relative to offsetParent
    276     if (el.offsetParent) {
    277       var tmp = fb.absolutePosition(el.offsetParent);
    278       r.x += tmp.x;
    279       r.y += tmp.y;
    280     }
    281     return r;
    282222  };
    283223
     
    290230           (g < 16 ? '0' : '') + g.toString(16) +
    291231           (b < 16 ? '0' : '') + b.toString(16);
    292   }
     232  };
    293233
    294234  fb.unpack = function (color) {
     
    303243        parseInt('0x' + color.substring(3, 4)) / 15];
    304244    }
    305   }
     245  };
    306246
    307247  fb.HSLToRGB = function (hsl) {
     
    313253        this.hueToRGB(m1, m2, h),
    314254        this.hueToRGB(m1, m2, h-0.33333)];
    315   }
     255  };
    316256
    317257  fb.hueToRGB = function (m1, m2, h) {
     
    321261    if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
    322262    return m1;
    323   }
     263  };
    324264
    325265  fb.RGBToHSL = function (rgb) {
     
    342282    }
    343283    return [h, s, l];
    344   }
     284  };
    345285
    346286  // Install mousedown handler (the others are set on the document on-demand)
     
    352292    }
    353293    fb.mousedown(e);
     294    e.preventDefault();
     295    return false;
    354296  });
    355297
     
    373315    fb.linkTo(callback);
    374316  }
    375 }
     317};
     318
     319})(jQuery);
Note: See TracChangeset for help on using the changeset viewer.