some optimization

pull/53/head
peterd 8 years ago
parent 6d241f7204
commit 2bc068a57e

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var $document = $(document), var $document = $(document),
_instance, _instance = $(),
_colorPicker, _colorPicker,
_color, _color,
_options, _options,
@ -44,6 +44,7 @@
ColorPicker = function(options) { ColorPicker = function(options) {
_color = this.color = new Colors(options); _color = this.color = new Colors(options);
_options = _color.options; _options = _color.options;
_colorPicker = this;
}; };
ColorPicker.prototype = { ColorPicker.prototype = {
@ -99,13 +100,12 @@
_color.setColor(extractValue(_$trigger[0])); _color.setColor(extractValue(_$trigger[0]));
preRender(true); preRender(true);
}).on(_pointerdown, });
'.cp-xy-slider,.cp-z-slider,.cp-alpha', pointerdown);
} else { } else {
$(_$UI).hide(_options.animationSpeed, function() { $(_$UI).hide(_options.animationSpeed, function() {
preRender(false); preRender(false);
_colorPicker.$trigger = null; _colorPicker.$trigger = null;
}).off('.a'); });
} }
} }
@ -114,9 +114,9 @@
(_options.css || _css) + (_options.cssAddon || '') + '</style>'); (_options.css || _css) + (_options.cssAddon || '') + '</style>');
return _colorPicker.$UI = _$UI = return _colorPicker.$UI = _$UI =
$(_html).css({'margin': _options.margin}). $(_html).css({'margin': _options.margin})
appendTo('body'). .appendTo('body')
show(0, function() { .show(0, function() {
var $this = $(this); var $this = $(this);
_GPU = _options.GPU && $this.css('perspective') !== undefined; _GPU = _options.GPU && $this.css('perspective') !== undefined;
@ -131,12 +131,14 @@
); );
this._width = this.offsetWidth; this._width = this.offsetWidth;
this._height = this.offsetHeight; this._height = this.offsetHeight;
}).hide(); }).hide()
.on(_pointerdown,
'.cp-xy-slider,.cp-z-slider,.cp-alpha', pointerdown);
} }
function pointerdown(e) { function pointerdown(e) {
var action = this.className. var action = this.className
replace(/cp-(.*?)(?:\s*|$)/, '$1').replace('-', '_'); .replace(/cp-(.*?)(?:\s*|$)/, '$1').replace('-', '_');
if ((e.button || e.which) > 1) return; if ((e.button || e.which) > 1) return;
@ -281,40 +283,38 @@
// preventFocus: false // preventFocus: false
}, options); }, options);
!_colorPicker && options.scrollResize && $(window). !_colorPicker && options.scrollResize && $(window)
on('resize.a scroll.a', function() { .on('resize.a scroll.a', function() {
if (_colorPicker.$trigger) { if (_colorPicker.$trigger) {
_colorPicker.toggle.call(_colorPicker.$trigger[0], true); _colorPicker.toggle.call(_colorPicker.$trigger[0], true);
} }
}); });
_instance = _instance ? _instance.add(this) : this; _instance = _instance.add(this);
_instance.colorPicker = _colorPicker || this.colorPicker = _instance.colorPicker =
(_colorPicker = new ColorPicker(options)); _colorPicker || new ColorPicker(options);
$(options.body).off('.a'). $(options.body).off('.a').on(_pointerdown, function(e) {
on(_pointerdown, function(e) { !_instance.add(_$UI).find(e.target)
!_instance.add(_$UI).find(e.target). .add(_instance.filter(e.target))[0] && toggle();
add(_instance.filter(e.target))[0] && toggle();
}); });
this.on('focusin.a click.a', toggle). return this.on('focusin.a click.a', toggle)
on('change.a', function() { .on('change.a', function() {
_color.setColor(this.value || '#FFF'); _color.setColor(this.value || '#FFF');
_instance.colorPicker.render(true); _instance.colorPicker.render(true);
}); })
.each(function() {
return this.each(function() {
var value = extractValue(this), var value = extractValue(this),
mode = value.split('('), mode = value.split('('),
$elm = findElement($(this)); $elm = findElement($(this));
$elm.data('colorMode', mode[1] ? mode[0].substr(0, 3) : 'HEX'). $elm.data('colorMode', mode[1] ? mode[0].substr(0, 3) : 'HEX')
attr('readonly', _options.preventFocus); .attr('readonly', _options.preventFocus);
options.doRender && options.doRender &&
$elm.css({'background-color': value, $elm.css({'background-color': value,
'color': function() { 'color': function() {
return _color.setColor(value). return _color.setColor(value)
rgbaMixBGMixCustom.luminance > 0.22 ? '#222' : '#ddd' .rgbaMixBGMixCustom.luminance > 0.22 ? '#222' : '#ddd'
} }
}); });
}); });
@ -323,7 +323,7 @@
$.fn.colorPicker.destroy = function() { $.fn.colorPicker.destroy = function() {
_instance.add(_options.body).off('.a'); // saver _instance.add(_options.body).off('.a'); // saver
_colorPicker.toggle(false); _colorPicker.toggle(false);
_instance = null; _instance = $();
}; };
return $; return $;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save