Thanks Remy...
I love the jQuery community!
-A
Remy Sharp wrote:
>
> /*
> jQuery Plugin highlightFade (jquery.offput.ca/highlightFade)
> (c) 2006 Blair Mitchelmore (offput.ca) [EMAIL PROTECTED]
> */
> /*
> (The inline documentation has returned until I can publish it on a page)
> Usage:
> $(whatever).hightlightFade(color,duration,complete,iterator);
>
> $(whatever).highlightFade({color:whatever,duration:whatever,complete:whatever,iterator:whatever});
> Description:
> This plugin allows for simple "yellow fade" technique which was
> popularized
> by 37signals.com but this can highlight in any colour. It
> always fades
> to
> the current background of the element but if the need for
> specifying the
> final colour is requested I'll consider adding it (or you could
> do it
> yourself :)).
> Arguments:
> color: Defines the color at which to begin fading
> - a w3c css compatable color code (ie rgb(1,2,3), #ccc,
> #ed3e23)
> or a w3c spec color name (ie blue, red, gray, et. al.)
> - Default value: rgb(250,250,200)
> duration: Defines the speed at which the color fades away
> - a jQuery speed string (ie slow, fast) or a duration
> in milliseconds
> - Default value: default value of jQuery's $.speed
> function
> complete: Defines a function to call once the colour fade has
> finished
> - Can be anything you want it to be. You can access the
> element on
> which
> the fade was applied via the this variable.
> - Default value: no action
> iterator: Defines the method by which we move from the starting
> color to
> the final.
> - Can be a string representing one of the built in
> fading algorithms
> (ie 'linear',
> 'sinusoidal', or 'exponential') or a custom function
> of your design.
> The custom
> function must take as it's arguments the start value,
> the final
> value, the total
> number of steps and the current step.
> - Linear is an even colour progression, Sinusoidal
> changes in the
> beginning fast but
> slows as it approaches disappearing, Exponential
> changes slowly in
> the beginning
> but increases its colour change per step as time goes
> on.
> - Default value: linear
> Notes:
> - Any arguments can be set to the default by setting them as
> null in the
> function call
> - Any arguments not specified in the Object notation are also
> taken as
> the default value
> Examples:
> - Do a red exponential highlightFade on all p elements on the
> page at a
> crawl speed
> $('p').highlightFade({color'red','crawl',null,'exponential')
> - Do a bluish sinusoidal highlightFade on all div's with a
> class of
> 'new' and remove it afterwards
> $('div.new').highlightFade('rgb(128,128,255)',null,function()
> {
> $(this).remove() },'sinusoidal');
> - Just do a plain old linear yellow fade on 'this'
> $(this).highlightFade();
> */
>
> $.fn.highlightFade = function(colour,settings) {
> if (typeof settings != 'object') settings = {
> color: arguments[0],
> speed: arguments[1],
> complete: arguments[2],
> iterator: arguments[3]
> };
> if (typeof colour != 'object' || (colour && colour.constructor ==
> Array))
> settings['color'] = colour;
> else settings = colour;
> var o = settings;
> var ts = {
> 'linear': function(s,e,t,c) { return parseInt(s+(c/t)*(e-s)); },
> 'sinusoidal': function(s,e,t,c) { return
> parseInt(s+Math.sin(((c/t)*90)*(Math.PI/180))*(e-s)); },
> 'exponential': function(s,e,t,c) { return
> parseInt(s+(Math.pow(c/t,2))*(e-s)); }
> };
> var t = (o['iterator'] && o['iterator'].constructor == Function) ?
> o['iterator'] : ts[o['iterator']] || ts['linear'];
> return this.each(function() {
> var i = 50;
> var e = (this.highlighting) ? this.highlighting.end :
> $.highlightFade.getBGColor(this) || [255,255,255];
> var c = $.highlightFade.getRGB(o['color'] || [255,255,128]);
> var s = $.speed(o['speed'],o['complete']);
> var r = (this.highlighting && this.highlighting.orig) ?
> this.highlighting.orig : $.curCSS(this,'backgroundColor');
> if (this.highlighting && this.highlighting.timer)
> window.clearInterval(this.highlighting.timer);
> this.highlighting = { steps: ((s.duration) / i), interval: i,
> currentStep: 0, start: c, end: e, orig: r };
> $.highlightFade(this,s.complete,t);
> });
> };
>
> $.highlightFade = function(e,o,t) {
> e.highlighting.timer = window.setInterval(function() {
> var newR =
> t(e.highlighting.start[0],e.highlighting.end[0],e.highlighting.steps,e.highlighting.currentStep);
> var newG =
> t(e.highlighting.start[1],e.highlighting.end[1],e.highlighting.steps,e.highlighting.currentStep);
> var newB =
> t(e.highlighting.start[2],e.highlighting.end[2],e.highlighting.steps,e.highlighting.currentStep);
>
> $(e).css('backgroundColor',$.highlightFade.asRGBString([newR,newG,newB]));
> if (e.highlighting.currentStep++ >= e.highlighting.steps) {
> $(e).css('backgroundColor',e.highlighting.orig || '');
> if (o && o.constructor == Function) o.call(e);
> window.clearInterval(e.highlighting.timer);
> e.highlighting = null;
> }
> },e.highlighting.interval);
> };
>
> $.highlightFade.getRGB = function(c,d) {
> var result;
> if (c && c.constructor == Array && c.length == 3) return c;
> if (result =
> /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))
> return
> [parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];
> else if (result =
> /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))
> return
> [parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];
> else if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))
> return [parseInt("0x"+ result[1] + result[1]),parseInt("0x" +
> result[2]
> + result[2]),parseInt("0x" + result[3] + result[3])];
> else if (result =
> /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))
> return [parseInt("0x" + result[1]),parseInt("0x" +
> result[2]),parseInt("0x" + result[3])];
> else
> return $.highlightFade.checkColorName(c) || d || null;
> };
>
> $.highlightFade.asRGBString = function(a) {
> return "rgb(" + a.join(",") + ")";
> };
>
> $.highlightFade.getBGColor = function(e) {
> var s;
> do if (((s = $.curCSS(e,'backgroundColor')) != '' && s != 'transparent')
> || (e.tagName.match(/^body$/i)) || (e.highlighting && e.highlighting.end))
> break; while (e = e.parentNode);
> if (e.highlighting && e.highlighting.end) s = e.highlighting.end;
> if (s == undefined || s == '' || s == 'transparent') s = [255,255,255];
> return $.highlightFade.getRGB(s);
> };
>
> $.highlightFade.checkColorName = function(c) {
> if (!c) return null;
> switch(c.replace(/^\s*|\s*$/g,'').toLowerCase()) {
> case 'aqua': return [0,255,255];
> case 'black': return [0,0,0];
> case 'blue': return [0,0,255];
> case 'fuchsia': return [255,0,255];
> case 'gray': return [128,128,128];
> case 'green': return [0,128,0];
> case 'lime': return [0,255,0];
> case 'maroon': return [128,0,0];
> case 'navy': return [0,0,128];
> case 'olive': return [128,128,0];
> case 'purple': return [128,0,128];
> case 'red': return [255,0,0];
> case 'silver': return [192,192,192];
> case 'teal': return [0,128,128];
> case 'white': return [255,255,255];
> case 'yellow': return [255,255,0];
> }
> };
>
>
> aedmonds wrote:
>>
>> Hey everybody,
>>
>> It seems that the maintainer at http://jquery.offput.ca/highlightFade/
>> has some problems with the site. I can't access any of the code for the
>> highlightFade plugin. It's not available in the jQuery SVN either.
>>
>> Could someone please post the uncompressed code for me?
>>
>> Thanks a bunch,
>>
>> -A
>>
>
>
--
View this message in context:
http://www.nabble.com/highlightFade%27s-source-code-missing...-tf2828595.html#a7897491
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/