Verificar tamanho de imagens com jQuery

Esse texto se refere a métodos bem simples que servem pra verificar o tamanho de imagens.

Podemos verificar sempre a altura e largura dos elementos na página com jQuery, assim como podemos checar esses valores a diversos tipos de elementos na página, não somente imagens.

São os métodos o weight e o height, vejamos:

jQuery('#imagem1').height(); // retorna a altura
// e
jQuery('#imagem1').width(); // retorna a largura

Além disso, esses métodos com valores dentro – exemplo: .height(’400px’) – pode ser utilizado para alterar o tamanho do elemento.

Mas quando só temos a url do arquivo de imagem ou ela é contida no background? A altura e largura vão ser relativas ao elemento, não necessariamente à imagem.

Vamos mostrar como podemos montar um elemento img e obter seu respectivo tamanho.
Ler mais »

Como desabilitar datas no DatePicker do jQuery UI

Tutorial rápido e prático: vamos desabilitar datas no DatePicker do jQuery UI.

Vamos supor que você quer exibir um datepicker pro usuário e nele você já configurou data mínima e data máxima com as propriedades minDate e maxDate. Você precisa agora selecionar uns dias específicos.

Vamos supor: estamos no mês de Agosto de 2010, vamos exibir o calendário com os 31 dias do mês e não queremos exibir os dias 10 a 12 do mesmo mês.
Ler mais »

WebSockets com HTML 5

Nota: assim que publiquei o artigo recebi um tweet sobre a questão do vínculo entre Websockets e HTML 5, com link para a página da W3C. Realmente WebSockets não é uma funcionalidade do HTML 5, falha minha. Conceituando melhor a tecnologia é uma API que está sendo desenvolvida, apesar da expectativa seja chegar como parceira e aliada do HTML 5.

AJAX foi uma revolução nos conceitos de experiência de usuário desde que chegou, agora vamos ter um possível aliado que vem por aí sem muito alarde, mas promete.

Trata-se do WebSockets, mais uma nova funcionalidade do HTML 5 que vai tratar da comunicação cliente-servidor sem utilização do Ajax nem fazendo requisição de página nova.

Como dito no próprio site do Nettuts, WebSockets é uma técnica para comunicação de mão dupla através de um socket (TCP), uma espécie de tecnologia PUSH. No momento ainda está sendo padronizado pelo W3C; entretanto, as últimas versões do Google Chrome e Safari já tem suporte ao WebSockets.
Ler mais »

Otimização para performance do jQuery

Estava lendo um artigo em inglês indicado pelo Ajaxian com 8 dicas para micro otimização do jQuery, era o 8 jQuery Micro Optimization Tips.

As dicas são muito boas, resolvi compartilhar algumas ideias por aqui.

Lembre-se que as dicas são para performance, não necessariamente para facilitar a programação e quebram o conceito de “escreva menos, faça mais”. Aqui estamos falando de práticas que podemos adotar quando a execução do jQuery depende de situações críticas ou temos muito código em nosso documento.

Ler mais »

Cantos arredondados no IE apenas com CSS!

Temos grandes browsers no mercado, infelizmente um dos mais utilizados é uma verdadeira pedra no sapato de quem tem que desenvolver para a web. Ainda mais quando falamos de cantos arredondados ou rounded corners

Existe um fato e existe uma solução!

Bordas no IE sem imagens

Ler mais »

Seu browser é também a sua IDE

Vou listar algumas das melhores IDEs para desenvolvimento em evidência no mercado. Não apenas para montar HTML 5 e CSS 3, mas também para códigos e algorítmos em diversas tecnologias, como Javascript, jQuery e até podemos arriscar algumas linguagens “server side”.

JSBin

JSBin é uma ferramenta excelente para teste colaborativo de html e javascript. Facilitando a integração algumas das mais populares bibliotecas e frameworks JS, ele permite que o usuário insira rapidamente o seu código e grave com um controle de versão muito simples. JSBin definitivamente não é apenas um marcador de código.

Característica que vale ressaltar: JSBin é open source, 100% free.

JSBin

Kodingen

PHP, Ruby on Rails, Django, Perl, SVN, Git, etc? Você ainda achava que era impossível ter uma IDE pra tudo isso que fosse também browser based? Kodingen é o nome dessa poderosa ferramenta que oferece uma boa parte de seu sistema de forma gratuita e está conquistando muitos fãs pela web.

Kodingen

Ler mais »

Como testar se o browser suporta elementos html 5 com Javascript

O teste é simples, vamos em quase todos os testes utilizar o método document.createElement() do javascript para elementos do HTML 5. Logo em seguida vamos testar atributos e/ou propriedades dos mesmos elementos. Assim vamos verificar se o elemento é ou não suportado em determinado browser.

Com a chegada – bem devagar – do HTML 5 e a exigência cada vez maior para criação de interfaces crossbrowsers, precisamos adequar e adaptar nossos projetos a situações diversas.

Não podemos, por outro lado, deixar de inovar. É interessante podermos utilizar uma tag <video>, por exemplo. Canvas é também muito interessante, mas o suporte ainda não é tão amplo.

Vamos aos testes:

Canvas

var teste = document.createElement("canvas");
var checar = ( teste.getContext ) ? true : false;
alert(checar);

O teste foi simples: criamos um elemento canvas, já deixamos ele apontado em uma variável que indica o teste, logo em seguida vemos se ele da suporte ao método getContext, suportado pelo elemento Canvas do HTML5. Você pode ver um resultado no link: http://jsbin.com/ogizo3/2/edit

Audio e Vídeo

var testeAudio = document.createElement("audio");
var testeVideo = document.createElement("video");
alert( testeAudio.play );
alert( testeVideo.play );

Agora fizemos o mesmo tipo de teste, porém testamos com um método que há nos 2 elementos – audio e video – em html 5: play(). Pra ver como está ficando nossa página de testes: http://jsbin.com/ogizo3/3/edit

Novos inputs do HTML 5

O html 5 tem vários novos inputs bem interessantes. Temos uma lista de vários novos tipos como date, datetime, range e number, por exemplo.

Independente do tipo de input o teste é simples:

var testeInputDate = document.createElement("input");
testeInputDate.setAttribute("type", "date");
alert( testeInputDate.type == "date" );
var testeInputDatetime = document.createElement("input");
testeInputDatetime.setAttribute("type", "datetime");
alert( testeInputDatetime.type == "datetime" );
var testeInputRange = document.createElement("input");
testeInputRange.setAttribute("type", "range");
alert( testeInputRange.type == "range" );
var testeInputNumber = document.createElement("input");
testeInputNumber.setAttribute("type", "number");
alert( testeInputNumber.type == "number" );

Se o navegador não aceitar o tipo apontado no método setAttribute, o retorno de seu tipo será normalmente text.

Enquanto isso temos mais informações na nossa página de testes: http://jsbin.com/ogizo3/4/edit

Adicionando suporte a outros elementos HTML 5 até com IE6

Agora um pequeno truque já bastante utilizado na web (inclusive nesse site).

Podemos utilizar o .createElement() para criar elementos com várias tags diferentes em nossas páginas, entre elas, elementos de bloco como nav, header, footer, section, article, aside etc.

Pra isso vamos fazer uma pequena chamada no Javascript e no CSS, considerando cada tag que vamos criar:

document.createElement('nav');

E no CSS uma pequena declaração:

nav { display: block; }

Pronto. Com esse hack super simples temos um elemento nav funcionando inclusive em Internet Explorer 6!

Claro que já existem códigos robustamente preparados, então indico usar, por exemplo, o que o próprio JSBin.com indica:

<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

e no início de nosso css:

article, aside, figure, footer, header, hgroup,  menu, nav, section { display: block; }

Não vamos ter nenhum recurso expecial, mas já vamos poder usar essas novas tags do HTML 5 em nossos documentos bem menos preocupados – nem frustrados – com o suporte crossbrowser.

Como criar um Plugin de WordPress para encurtamento de Links via bit.ly

Quero falar sobre o processo de criação de plugin em WordPress, vou aproveitar o contexto e fazer aqui um que recebe (ou não) um link e retorna um link encurtado pelo site Bit.ly.

O plugin adiciona uma página na área de administração com um pequeno form onde podem ser informados o login e a API key do bit.ly.

O plugin poderá ser chamado no wordpress via outro plugin ou no código do tema utilizado, através de um ou mais métodos que vamos fornecer. Também poderemos chamar o plugin através de um <em>shortcode</em> que vamos criar.

Se não fornecermos um link para encurtamento, o plugin deverá verificar se ele está sendo executando durante um loop e assim retorna o permalink do artigo em questão.
Ler mais »

CSS 3 de forma simples com o eCSStender!

Simplesmente é um projeto open-source em javascript bem bacana que facilita a vida de quem tem que criar um CSS. Algo como um único border-radius pra servir com todo browser (menos a merda do IE, claro).

Ele é totalmente modular e com suas extensões pode-se obter muitas facilidades, como ampliar seletores CSS 3 para IE6, criar transforms, transitions, @font-face de forma mega fácil.

Para usar o módulo de seletor deve-se indicar um outro módulo já pronto, como o Sizzle, o mesmo já carregado e utilizado pelo jQuery e fazer uma pequena declaração no js indicando o seletor:

eCSStender.addMethod('findBySelector',Sizzle);

O eCSStender tem uma integração excelente com diversas bibliotecas tais como jQuery, prototype, etc. Não rola conflito! Fica tudo de forma simples e clara pra manutenção, deixe a trabalheira com o eCSStender!

O nome está assim para trazer a pronúncia: “extender”.

No link http://ht.ly/2b5Lc tem um exemplo bem legal que usei junto do html5shiv para usar tags de html 5 na página e ter algum resultado decente no IE6.

Página 1 de 912345...Última »

Performance Optimization WordPress Plugins by W3 EDGE