terça-feira, 8 de maio de 2012

jQuery. Extendendo position e offset para trazer right e bottom

Fala nerdaiada.
Tá precisando calcular o bottom e o right de um elemento?

Deixa isso pronto num arquivo js uai!

Vamos criar uma nova função no jQuery pra 'extender' as funções position e offset para que retornem esses valores.

Bem.
Pra extender o jquery, podemos fazer de várias maneiras.
Abaixo nós temos um exemplo de como fazer isso:

(function($){
/**
* Função que retorna o objeto posição com novos atributos.
* @return {Object} p Objeto com as opções top, left, right, bottom.
*/
$.fn.extPosition=function(){
var p=$(this).position(arguments);
if(('left' in p) && ('top' in p))
p=$.extend({},p,{
right:p.left+$(this).width(),
bottom:p.top+$(this).height()});
return p;
};

/**
* Função que retorna o objeto posição 'offset' com novos atributos.
* @return {Object} p Objeto com as opções top, left, right, bottom.
*/
$.fn.extOffset=function(){
var p=$(this).offset(arguments);
if(('left' in p) && ('top' in p))
p=$.extend({},p,{
right:p.left+$(this).width(),
bottom:p.top+$(this).height()});
return p;
};

})(jQuery);

Explicação?! 'Pô! Tô perdido!!!'
'$' é o objeto que contém toda a jQuery. (To errado?!)
'$.fn' é o objeto que contém a maioria das funções que serão usadas pelos elementos da página!
Então...

É só criar a função $.fn.minhaFuncao=function(){};

Outra forma: $.extend($.fn,{minhaFuncao:function(){}});

Quer saber mais?
http://docs.jquery.com/Main_Page

Nenhum comentário:

Postar um comentário