Arquivos da categoria ‘HTML’

Galeria com JQuery - Download

Postado por: Tiago Lemos em 6th ago, 2009 | Categoria: ASP.NET, CSS, HTML, JQuery, JavaScript

Bom, conforme prometido essa é a galeria apresentada no post Galeria com JQuery.

A ideia é bem simples, quando a galeria está com JavaScript habilitado ela possui um efeito de transição entre as imagens e a páginação dos itens da galeria.

Sem JavaScript habilitado a galeria é apresentada em uma DIV com scroll.

Download da Galeria

Faça o download da galeria aqui.

Ah é, graças a minha amiga e colega de trabalho a Fran que resolveu meu probleminha de FTP, eu consegui disponibilizar a galeria para vocês.

Aguarde que em breve tem mais.

Galeria com JQuery (funciona com e sem javascript habilitado)

Postado por: Tiago Lemos em 3rd ago, 2009 | Categoria: CSS, HTML, JQuery

Bom, primeiro desculpe o sumiço mas isso é consequência de muito trabalho na Webroom e em um projeto pessoal que em breve vocês irão conhecer. Tenho alguns e-mails para responder e ainda não tive tempo, mas prometo em breve dar um retorno a todos.

Parando um pouco de dar desculpas, vou apresentar hoje uma galeria que fiz onde a utilização dela é muito simples e acredito que ela seja bem útil, pois funciona com e sem JQuery (ou seja com e sem JavaScript habilitado).

Como todos já devem imaginar o primeiro passo e baixar a última versão do JQuery. Depois basta montar a galeria seguindo os passos abaixo. Veja que a estrutura da galeria é bem simples:

  • galeria.js
  • estilo.css
  • galeria.html
  • além do jquery-1.3.2.min.js

Gostaria de apresentar um preview para vocês, mas infelizmente estou tendo um pequeno problema para acessar o FTP do meu blog e não consigo disponibilizar a galeria pronta e funcionando (mas nada impede vocês de copiarem o código e utilizar a galeria).

Abaixo segue o código HTML da galeria:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Galeria</title>
  <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
  <script type="text/javascript" src="galeria.js"></script>
  <link href="estilo.css" type="text/css" media="all" rel="stylesheet" />
</head>
<body>
<div class="container">
<div class="painel_noscript">
  <ul class="galeria_noscript" >
    <li><a href="#"><img src="imagens/200/foto1.jpg" width="200" height="200" alt="Foto 1" /></a></li>
    <li><a href="#"><img src="imagens/200/foto2.jpg" width="200" height="200" alt="Foto 2" /></a></li>
    <li><a href="#"><img src="imagens/200/foto3.jpg" width="200" height="200" alt="Foto 3" /></a></li>
  </ul>
</div>
  <ul class="navegacao" >
    <li><a href="#1">1</a></li>
    <li><a href="#2">2</a></li>
    <li><a href="#3">3</a></li>
  </ul>
  </div>
  </body>
</html>

Agora segue o código JavaScript da galeria:

var itens = 0; //Serve como o contador de itens realizados até aquele determinado momento.
var limiteItens = 0; //É a quantidade limite de elementos dentro da galeria. Ela é recuperada automaticamente de acordo com a quantidade de LI dentro da UL principal.
var tempo = 6000; //Em milisegundos 5000 = 5 segundos
var widthImagem = 0; //Tamanho da imagem da galeria. Serve para andar o tamanho correto de acordo com o tamanho na tag IMG
var heightImagem = 0; //Tamanho da imagem da galeria. Serve para andar o tamanho correto de acordo com o tamanho na tag IMG
var timer; // Este é o timer da galeria
var tempoEfeito = 1300; //Velecidade da transição

$(document).ready(function(){
  startTimer();
  if($('.galeria_noscript').length != 0 ){
    $('.painel_noscript').removeClass('painel_noscript').addClass('painel');
    $('.galeria_noscript').removeClass('galeria_noscript').addClass('galeria');

    $(".navegacao a").click(function () {
      itens = parseInt($(this).attr("href").replace("#",""));
      rodar($(this).attr("href"),false);
      clearTimeout(timer);
      timer = setTimeout(startTimer,tempo); //Se usuário clicou no numero, então para o timer e inicializa ele novamente aqui.
    }); 

    limiteItens = $('.galeria li').length;
    widthImagem = $(".galeria li img").attr("width");
    heightImagem = $(".galeria li img").attr("height");

    $('.container').css({'width' : (widthImagem)+'px','height' : (heightImagem)+'px'});
    $('.painel').css({'width' : (widthImagem)+'px','height' : (heightImagem)+'px'});
    $('.galeria').css({'width' : (limiteItens * widthImagem)+'px'});
    $('.navegacao').css({'display' : 'block'});
  }
});

startTimer = function(){
    if(itens == limiteItens){itens = 0}
    itens= 1 + itens;
    rodar(itens,true);
    timer = setTimeout(startTimer,tempo);
} 

classeAtual = function(elemento){
  $('.navegacao li a').removeClass('atual');
  $('.navegacao li a[href=#'+ elemento +']').addClass('atual');
}

rodar = function(idBanner,auto) {
  if(!auto)
  { idBanner = idBanner.replace(/#/, "");}
  classeAtual(idBanner); // Seta a classe atual na numeração

  var tam = 0;
  if(idBanner != 1)
  { tam = (idBanner - 1) * widthImagem; }

  $('.galeria').animate({
    left: "-"+ tam+"px"
  },tempoEfeito);
}

Agora para deixar funcionando corretamente, coloque este CSS:

@charset "utf-8";

/* Galeria */
.container{ height:218px; }

/* Sem JavaScript Habilitado */
.container .painel_noscript {width: 200px; height: 200px; display:block;overflow:hidden;}
.container .galeria_noscript {width: 220px; height: 200px; display:block; position:absolute; overflow:scroll; list-style:none; margin:0; padding:0; }
.container .galeria_noscript li a {display:block; }
.container .galeria_noscript li a img { border:none; }

/* JavaScript Habilitado */
.container .painel { display:block; overflow:hidden; position:relative;}
.container .galeria {list-style:none; margin:0; padding:0; overflow:hidden; position:absolute;}
.container .galeria li {float:left;}
.container .galeria li a { display:block;}
.container .galeria li a img { border:none; }
.container .navegacao {display:none; overflow:hidden; list-style:none; margin:0; padding:0; }
.container .navegacao li {float:left; border:1px solid #000;}
.container .navegacao li a { width:22px; height:18px; display:block; color:#000; font-weight:bold; text-decoration:none; text-align:center;}
.container .navegacao li a.atual {background-color:#FF0000;}

Para concluir crie uma pasta de imagens e o tamanho das imagens deve ser colocado de forma correta no HTML. Preste atenção nos diretórios e está pronto.

Eu realmente gostaria de disponibilizar para vocês uma prévia da galeria, mas se vocês tiverem problemas deixem seus comentários que irei responder. Assim que resolver meu problema de FTP disponibilizarei essa galeria.

Hack de CSS para Chrome e Safari

Postado por: Tiago Lemos em 22nd jun, 2009 | Categoria: CSS, HTML, Tecnologia

Bom, voltando a escrever depois de um bom tempo (apresentação de Workshop, horas extras e muuuuita correria no trabalho), vim desta vez trazer uma dica para “programadores de interface”. Bom, estou criando um projeto pessoal e nele além do programar em ASP.NET MVC também estou fazendo o HTML e CSS.

Esta dica server para que você possa fazer Hack de CSS para o Safari e Chrome. Basta colocar seu código CSS da seguinte forma:


/*Funciona para IE e Firefox*/
body { background-color: Blue;  }

/*Somente para Safari e Chrome*/
@media screen and (-webkit-min-device-pixel-ratio:0)
{
    body { background-color: Red; }
}

Bem simples e “útil”. Eu particularmente não gosto de utilizar Hacks, mas quando não encontro outro jeito vai na “gambi” mesmo. Quem me ajudou a encontrar esse hack foi o Leonardo Ota meu colega de trabalho. Espero que tenham gostado.

Como funciona o arquivo app_offline.htm

Postado por: Tiago Lemos em 29th mai, 2009 | Categoria: ASP.NET, C#, HTML, VB

Bom, muitos devem conhecer esse arquivo, mas tenho que confessar que eu não sabia da existência dessa excelente funcionalidade do ASP.NET 2.0.

Criando um arquivo HTML com o nome de “app_offline.htm” e colocando esse arquivo na raiz de uma aplicação Web, irá forçar um redirect em toda requisição do IIS para esse arquivo. Bom, ai você deve perguntar qual a vantagem disto?

Imagine que você queira colocar um site em manutenção, onde ninguém em hipótese nenhuma poderá acessar qualquer página do site. Como fazer isso? Simples, coloque um arquivo chamado “app_offline.htm” que você não terá problemas.

Pensando um pouco mais pra frente, imagine que você tenha duas aplicações Web distintas (uma seria o Site a outra seria o Sistema Administrativo do site). Imagine agora que o Sistema Administrativo possui uma mensalidade e o “donos” do sistema não efetuaram o pagamento do mês. Colocando este arquivo na raiz do Sistema Administrativo você bloquea o acesso de qualquer usuário a esta área sem afetar o Site.

Bem simples e legal essa funcionalidade.

Espero que tenham gostado desta dica. Em breve tem mais.

Firefox Plugins: Esses vocês precisam ter

Postado por: Tiago Lemos em 27th mar, 2009 | Categoria: AJAX, CSS, Diversos, HTML, Tecnologia

Recentemente tive que configurar uma máquina do “zero” e quando fui começar a programar o que eu percebi? Faltava os plugins do Firefox. Achei que esta seria uma boa dica para compartilhar com vocês.
Bom irei citar aqui uma lista com os 10 mais (pra mim é claro) plugins do Firefox.

1º - Noia 2.0 eXtreme

Esse não é propriamente um plugin, mas é um tema que eu particularmente gosto muito.

2º - NoScript

Está preocupado com segurança do seu navegador? Então esse é o plugin pra você ter e não se preocupar com possíveis ataques de scripts maliciosos.

3º - TwitterFox

Você tem Twitter? Então você deve usar o TwitterFox. Excelente plugin pra acompanhar tudo que as pessoas que você seguem estão postando.

4º - ColorZilla

Este plugin é uma excelente ferramenta para designer. Ele permite descobrir cores em qualquer lugar do brower, possui uma paleta de cores entre outras coisas.

5º - Google Preview

Sabe quando você acessa o site, não armazena o endereço e só lembra da layout do site? Pois é, este plugin apresenta o preview do site no resultado da buscado google. Excelentes nessas ocasiões, onde você só lembra do layout do site.

6º - Down Them All

Excelente gerenciador de downloads para seu firefox. Ele realmente permite pausar e continuar um download a qualquer momento que você queira continuar.

7º - del.icio.us buttons

Outro excelente plugin que permite visualizar todos seu favoritos armazenados no Del.icio.us. Com botões de acesso rápido e a listagem de suas Tags.

8º - YSlow

Quer saber porque seu blog ou seu site está lento? O Yslow ajuda a indentificar alguns dos principais pontos que podem deixa-los lentos.

9º - Web Developer

Na minha opnião essa é a segunda melhor extensão existente no Firefox. O Web Developer possui N ferramentas para te auxiliar no desenvolvimento web. Ele possui ferramentas que auxiliam designers e programadores.

10º - Firebug

A primeira colocação fica para este excepcional plugin. Firebug é uma excelente ferramenta para auxiliar no desenvolvimento JavaScript. Ele permite a edição de html, script e css em tempo real. Permite debugar o JavaScript além de muitas outras funcionalidades.
Bom, fechamos aqui essa lista, que na minha opnião são os 10 mais plugins do Firefox.
Espero que tenham gostado de mais esta dica.

Bespin - Desenvolva seus códigos na Web

Postado por: Tiago Lemos em 17th fev, 2009 | Categoria: Diversos, HTML

O Bespin é a mais nova experiência do Mozilla Labs. Veja como o Bestin funciona no vídeo abaixo:


Introducing Bespin from Dion Almaer on Vimeo.

A aposta da vez é um editor on-line. Realizei alguns testes e achei bem interessante. Neste primeiro protótipo o Bestin inclui suporte para auxiliar a editar características básicas, tais como códigos coloridos, arquivo de tamanho grande, fazer/desfazer ações, visualizar os arquivos no browser e importar/exportar projetos.

Vale apena testar e é de graça, para isso, realize seu registro no site e utilize o Bestin.

Espero que gostem. Em breve tem mais.

Exportando dados para Word e Excel usando C#

Postado por: Tiago Lemos em 24th out, 2008 | Categoria: C#, HTML, VB

Há algum tempo atrás tive um problema com exportação para Word e Excel, no componente RadGrid do Telerik. O problema estava na exportação dos dados para Word e Excel do Office 2007.

Em busca de uma solução que fosse resolver este problema de exportação, indiferente da versão do Office que o usuário possui em sua máquina, eu e meu Gerente de Projetos utilizamos um artifico do Office em que uma estrutura de tabela (table - HTML) é transformada em tabela para o Word ou para o Excel:

Abaixo a descrição de como pode ser feita essa exportação:

  1. Cria-se uma string vazia;
  2. Escreve na string uma estrutura de tabela em HTML, neste caso a tabela deverá ter os dados a serem exportados;
  3. Alteramos os ContentType e AddHeader da página que irá exportar os dados;
  4. Retorne o valor da string para o usuário.

Abaixo segue um exemplo do código para exportar dados:


     //Primeiro cria uma string
     string tabela = String.Empty;

     //Monte uma estrutura HTML
     tabela += <table>
     tabela += <tr><td>Informação 1</td><td>Informação 2</td></tr>
     tabela += <tr><td>Informação 3</td><td>informação 4</td></tr>
     tabela += </table>

     //Escolha se irá exportar para Word ou Excel
     HttpContext.Current.Response.ContentType = "application/vnd.doc";
     HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Dados.doc");

     HttpContext.Current.Response.ContentType = "application/vnd.xls";
     HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Dados.xls");

     //Define o Encoding da página
     HttpContext.Current.Response.ContentEncoding = Encoding.Default;

     //Escreva a string
     HttpContext.Current.Response.Write(tabela);
     HttpContext.Current.Response.End();
     

É uma solução simples que funciona tanto no Office (Word/Excel) 2003 e 2007. O código está escrito em C#, mas pode ser utilizado com VB sem nenhum problema.