Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de Javascript
SEÇÕES
Manuais relacionados
+Workshop de Javascript
Categorias
+Scripts em Javascript

Índice do Manual Workshop de Javascript
+ Efeitos rápidos com Javascript
+ Abertura e configuração de popups com Javascript
+ Acessso por senha Javascript
+ Rollover com Javascript
+ Navegador dinâmico Javascript
+ Navegador desdobrável
+ Navegador desdobrável com frames
+ Texto em movimento na barra de estado
+ Marcar ou desmarcar todos os checkboxes de um formulário com Javascript
+ Desabilitar o menu contextual do navegador com Javascript
+ Relógio em Javascript
+ Scripts diferentes para cada navegador
+ Tamanho dos campos relativo ao navegador
+ Estilos diferentes para cada navegador
+ Tabela de cores com Javascript
+ Sub-menu em outra janela
+ Degradê de cor Javascript
+ Validar inteiro no campo de formulário
+ Exemplos de funcionamento da classe String
+ Exemplo de funcionamento de Date
+ Link aleatório Javascript
+ Geração de números aleatórios Javascript
+ Comprovar se as senhas são iguais
+ Ex. de trabalho com formulários. Calculadora simples
+ Enviar ao navegador a outra página se não tiver Javascript
+ Confirmação de envio de formulário
+ Javascript para se posicionar em um select
+ Inibir um campo texto de formulário com Javascript
+ Camadas com Internet Explorer 5, 6, Netscape 6, 7 e Opera
+ Mostrar e ocultar camadas com IE 5,6 NS 6,7
+ Movimento de Camadas com IE 5,6 NS 6,7
+ Escritura nas Camadas com IE 5, 6, NS 6, 7
+ Como iluminar tabelas, células ou filas
+ Inibir radio button com Javascript
+ Atualizar dois frames com um só link
+ Calcular a idade em Javascript
+ Iluminar formulários com CSS e Javascript
+ Autozoom de texto com Javascript
+ Javascript para evitar que a página se mostre em um frame
+ Elementos de formulário select associados
+ Conta os caracteres escritos em um textarea
+ Passo de parâmetros em HTML com client-side Javascript
+ Moldura dinâmica em Javascript com texto que muda
+ Criação de gráficos de barras com Javascript
+ Jogos em Javascript
+ Cross-Browser. DHTML compatível com todos os navegadores.
+ HTML Area. Editor WYSIWYG
+ Ocultar um e-mail de um link para evitar o spam
+ Função em Javascript para a inserção de datas
+ DHTML Calendar
+ Gerar uma cor aleatória com Javascript
+ A aprendizagem na Internet
+ Menu Dinâmico com Javascript
+ Página que muda aleatoriamente a cor de fundo
+ Script de recarregamento da página com Javascript
+ Mudar a cor às células de uma tabela com Javascript
+ Pop-ups DHTML – OpenPopups
+ Validar a extensão de um arquivo a subir com Javascript
+ Detectar a resolução da tela do usuário com Javascript
+ Esconder a URL de um link na barra de estado
+ Como integrar conteúdo RSS em minha página?
+ Fazer com que um iframe se ajuste à altura de uma janela com Javascript
+ É vantajoso o uso de ParseInt para validar números?
+ Efeito para desabilitar/habilitar o fundo da Página
+ Validar número de checkbox marcados com Javascript
+ Evitar que um textarea supere um número de caracteres permitidos
+ Javascript não intrusivo
+ Controle de introdução de caracteres de um campo de texto com Javascript
+ Listagem de diferentes Framework Javascript
+ Script para detecção de suporte a Ajax, Cookies e ActiveX
+ Leitor RSS com Javascript
+ Funções para validação alfanumérica de strings em Javascript
+ Script para informar da segurança de uma senha, com Javascript

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Página que muda aleatoriamente a cor de fundo

Como fazer com que uma página mude de cor cada vez que se visita, colocando uma cor aleatória e com o texto que contraste para que se possa ler bem.


Vamos criar uma página que tem uma cor de fundo aleatória, de modo que, cada vez que se visite se mostre com um fundo diferente. Entretanto, como a cor da página vai ser diferente a cada vez, para certificarmos que o texto poderá ser lido corretamente, faremos com que o texto da página seja ou branco ou negro, dependendo da gama da cor de fundo: se for escuro, o texto da página será branco e se o fundo for claro, o texto se verá em negro.

Há que se dar conta que, se a cor é aleatória, às vezes sairá mais escuro e às vezes mais claro. Para que se leia bem o texto, sua cor tem que contrastar o suficiente com a cor de fundo, por isso, calcularemos a obscuridade ou a claridade do fundo para observar a cor do texto.

Pode-se ver em funcionamento o exemplo que será desenvolvido nesta página.

Em um artigo anterior do workshop de Javascript já explicamos uma maneira de conseguir uma cor aleatória em Javascript.

Apesar de no mencionado artigo já estar a função Javascript para obter uma cor aleatória transcreveremos novamente aqui, pois fizemos um par de mudanças minúsculas ao código:

function dame_numero_aleatorio(superior, inferior){
   var numPossibilidades = (superior + 1) - inferior;
   var aleat = Math.random() * numPossibilidades;
   aleat = Math.floor(aleat);
   aleat = (inferior + aleat);
   return aleat
}

function dame_cor_aleatoria(){
   color_aleat="#"
   hexadecimal = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F")
   var inferior = 0;
   var superior = hexadecimal.length-1;
   for (i=0;i<6;i++){
      color_aleat += hexadecimal[dame_numero_aleatorio(superior, inferior)];
   }
   return color_aleat
}


Agora veremos a maneira de conhecer a obscuridade ou claridade de uma cor aleatória gerada por Javascript. Para calcular a obscuridade (ou claridade) de uma cor em formato RGB hexadecimal, vamos realizar vários passos:

Temos que saber que, a maiores valores de RGB, a cor resultante será mais clara. Se os valores de RGB são mais baixos, a cor será mais escura. Os valores de R, G e B, separadamente podem ir, em decimal, desde 0 a 255. Diremos que será claro quando for maior que 255 / 2 e que é escuro quando for menor de 255 / 2. Vamos supor um umbral a partir do qual consideramos a cor mais escura ou mais clara. Digamos que se somamos separadamente os valores vermelho, verde e azul e dá mais da metade de ((255 + 255 +255) / 2), é que a cor é clara. Se estiver abaixo desse umbral, a cor é escura.

  1. Separaremos os valores hexadecimais dos três componentes da cor (vermelho, verde e azul)
  2. Converteremos esses valores a inteiros em base 10
  3. Somamos os valores de cada cor, obtendo um número inteiro, do que vamos deduzir a claridade ou obcuridade.
  4. Se o número resultado da soma for menor que ((255 + 255 + 255) / 2), então é que a cor de fundo é escura, logo a cor do texto deve ser clara. E ao contrário, se deduzimos que a cor de fundo é clara, então a cor de texto terá que ser escura.
Isto se faz da seguinte maneira, em código Javascript, tendo uma cor em um string com o formato #RRGGBB:

//obtenho uma aleatoria
colorin = dame_cor_aleatoria()

//vou extrair as tres partes da cor
rojo = colorin.substring(1,3)
verde = colorin.substring(3,5)
azul = colorin.substring(5,7)

//vou converter a inteiros os string, que tenho em hexadecimal
intvermelho = parseInt(vermelho,16)
intverde = parseInt(verde,16)
intazul = parseInt(azul,16)

//agora somo os valores
obscuridade = intvermelho + intverde + intazul

//se o valor obscuridade for menor que ((255 + 255 + 255) / 2) é que é uma cor mais escura
//se for escura, a cor do texto será branca
if (obscuridade<(255+255+255)/2)
   colortexto="#ffffff"
else
   colortexto="#000000"


Para atualizar a cor de fundo e de texto de uma página web se poderia fazer com estas linhas de código:

document.fgColor=colortexto
document.bgColor=colorin

Porém, isto dá um problema em alguns navegadores, ao mudar a cor do texto, que não se pode fazer se previamente se escreveu algo na página.

Então, vamos marcar a cor do fundo e do texto utilizando os conhecidos atributos bgcolor e text da etiqueta <body>.

Escreveremos o <body> mediante javascript, colocando os valores de cor aleatória e cor do texto que extraímos das variáveis que os contém.

document.write('<body bgcolor="' + colorin + '" text="' + colortexto + '">')

Isso é todo. Já temos a página com a cor de fundo aleatória e a cor do texto com suficiente contraste.

A página onde implementamos este exercício pode-se ver em funcionamento aqui. Podemos ver seu código fonte para obter script do exemplo completo.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de Javascript

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em Javascript


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites