| This page in English. |
Este efeito de DHTML constitui um elemento de surpresa numa página de abertura tal como no site La Grotte de Lascaux, França (em Abril 2000). Pode também ser usado para criar uma atmosfera lúgubre ou subterrânea em jogos, puzzles ou aventuras gráficas feitas em HTML.
O princípio de funcionamento é simples: no corpo da página HTML (
Coloca-se por cima uma camada (layer) completamente opaca (e de preferência negra) apenas com um pequeno orifício transparente que permita ver o corpo da página. Esta camada opaca é criada a partir de uma tabela ou de uma imagem que ocupe toda a janela. A posição da camada opaca, que neste exemplo se chama "spot", é controlada por JavaScript. Admitindo que o orifício transparente está associado ao rato, calcula-se a posição
|
![]() A imagem base |
A camada "spot" deve ser dimensionada para cobrir toda a imagem base. Isto significa que as dimensões da camada em cada direcção devem ser cerca do dobro das dimensões da imagem para que, quando o orifício se localiza em cada um dos cantos da imagem, o outro extremo esteja ainda coberto. Note-se que quando a imagem é mais pequena do que a janela do browser é necessário limitar a zona tapada pela camada "spot" para não cobrir os outros elementos. Isto pode ser realizado de várias formas. A forma mais simples é criar uma frame com a dimensão aproximada da imagem. Como o layer é parte da frame, tem os limites espaciais desta. Foi assim que fiz e também é assim que
é feito nas grutas de Lascaux. Outra forma de o fazer, mais complexa, é utilizar a propriedade
|
Este efeito é aqui simulado com um GIF animado. Por enquanto, é impossível fazer imagens ou layers parcialmente transparentes em DHTML, embora a especificação CSS 2.0 contemple essa hipótese. |
Se o orifício não fôr rectangular torna-se necessário usar uma imagem GIF para definir a forma do orifício de visualização. A imagem a usar deve ser totalmente negra nas zonas opacas e branca nas zonas que se querem transparentes. Depois deve ser gravada escolhendo o branco como côr transparente. A construção do layer "spot" pode fazer-se de duas formas:
Escolhi a segunda solução, que me parece claramente melhor. À direita encontra-se o código HTML para as duas soluções. |
Código do layer "spot"Uma imagem ocupa todo o layer
Tabela com uma pequena imagem no centro
|
A função que desloca o layer "spot" está definida em
Àparte pequenas diferenças de implementação para Netscape Navigator e Microsoft Internet Explorer, a sequência de funcionamento é assim:
Se o ponteiro estive fora dos limites da imagem a função fica inactiva. |
Movimentação do layer "spot"
|
Embora este efeito seja agradável, torna-se frustrante quando se verifica que não se pode fazer nada com a imagem. Seria interessante poder "clicar" em pontos sensíveis para obter informações ou seguir para outras páginas.
É o que vamos ver a seguir.
Se tiver dúvidas, críticas ou sugestões, não hesite em contactar-me.
| Criado em 27 de Maio de 2000 | Voltar para a lanterna. | ©2000 João Gomes Mota jsgm@gomes-mota.nome.pt |
| A imagem base provém de "Les 7 vies de l'Épervier, tome 5 - Le Maître des Oiseaux", da autoria de Cothias e Juillard | ||