Kaboom

From Labmm2

(Difference between revisions)
Jump to: navigation, search
(Funções no Javascript)
(Estrutura Geral)
 
(22 intermediate revisions not shown)
Line 42: Line 42:
== '''Limites e características da aplicação''' ==
== '''Limites e características da aplicação''' ==
-
Para este site vamos possibilitar o acesso a todos os utilizadores que queiram visitar o site, o acesso será livre a todos os menus, mas para que sejam efectuadas as compras dos produtos disponíveis será necessário criar uma conta de utilizador.
+
Para este site vamos possibilitar o acesso a todos os utilizadores que queiram visitar o site, o acesso será livre a todos os menus e conteúdos sem ser necessário recorrer a contas de utilizador.
== Layouts ==
== Layouts ==
-
<br> Para este site irão ser realizados dois layouts com temas diferentes, um como o tema de heróis, e outro com vilões. O plano de fundo será dividido numa imagem, dividida em quadradinhos de banda desenhada que representam os diversos menus, cada um desses quadrados terá um herói/vilão. Para se alterar entre os temas, em cada menu, irá haver um butão que irá permitir essa alteração entre os temas. Os menus em cada um dos temas terão os mesmos conteúdos e tudo estará posicionado da mesma maneira, as únicas alterações que serão apresentadas será a personagem e a imagem de fundo no quadrado.
+
<br> Para este site irão ser realizados dois layouts com temas diferentes, um como o tema de heróis, e outro com vilões. O plano de fundo será dividido em divs, cada uma dessas divs representa um quadradinho de banda desenhada que representa um menu, cada um dos quadrados terá um herói/vilão. Para se alterar entre os temas, em cada menu, irá haver um butão que irá permitir essa alteração entre os temas. Os menus em cada um dos temas terão os mesmos conteúdos e tudo estará posicionado da mesma maneira, as únicas alterações que serão efectuadas serão a personagem e a imagem de fundo no quadrado.
<br>
<br>
<br>
<br>
Line 57: Line 57:
Layout vilões:<br>
Layout vilões:<br>
[[File:Layout_mau.jpg]]
[[File:Layout_mau.jpg]]
 +
<br>
 +
<br>
 +
==Layouts finais ==
 +
<br>
 +
Lado bom:<br>
 +
<gallery>
 +
 +
File:Spider_b.png|Página "Home", página que serve de "porta de entrada" para o site.
 +
File:About.jpg|Página "About Us", página em que se fala da equipa que trabalha na loja e tambem da história da mesma.
 +
File:Gallery_b.jpg|Página "Gallery", página que apresenta a galeria de imagens.
 +
File:Store_b.jpg|Página "Store", página onde o utilizador pode encomendar os produtos.
 +
File:Sugestoes_b.jpg|Página "Suggestions", página onde são apresentadas sugestões de leitura.
 +
File:Contactos_b.jpg|Página "Contacts", página onde são apresentados os contactos da empresa.
 +
</gallery>
 +
 +
<br>
 +
Lado Vilão:<br>
 +
<gallery>
 +
 +
File:Spider_m.jpg|Página "Home", página que serve de "porta de entrada" para o site.
 +
File:About_m.jpg|Página "About Us", página em que se fala da equipa que trabalha na loja e tambem da história da mesma.
 +
File:Gallery_m.jpg|Página "Gallery", página que apresenta a galeria de imagens.
 +
File:Store_m.jpg|Página "Store", página onde o utilizador pode encomendar os produtos.
 +
File:Sugestoes_m.jpg|Página "Suggestions", página onde são apresentadas sugestões de leitura.
 +
File:Contactos_m.jpg|Página "Contacts", página onde são apresentados os contactos da empresa.
 +
</gallery>
 +
 +
<br>
<br>
<br>
<br>
Line 64: Line 92:
<br>
<br>
==Estrutura Geral==
==Estrutura Geral==
-
Para a realização do menu recorremos essencialmente a divs para dividir a informação.
+
Para a realização deste site, recorremos à utilização de divs e classes para dividir a informação presente em cada um dos menus (logótipo do site, menu, conteúdos, etc..)
<br>  
<br>  
<br>
<br>
 +
A classe menu:
 +
<pre>
 +
<div class="menu">
 +
 +
        <img src="imgs/menu/home_active.png" />
 +
        <button id="about" onClick="moving('-=100%','null');"><img src="imgs/menu/about.png" /></button>
 +
        <button id="reg" onClick="moving('null','-=100%');" ><img src="imgs/menu/reg.png" /></button><br />
 +
        <button id="sto" onClick="moving('-=100%','-=100%');"><img src="imgs/menu/store.png" /></button>
 +
        <button id="sug" onClick="moving('null','-=200%');"><img src="imgs/menu/sug.png" /></button>
 +
        <button id="cont" onClick="moving('-=100%','-=200%');" ><img src="imgs/menu/cont.png" /></button>
 +
        </div>
 +
</pre>
 +
Dentro da div de classe "menu" temos variados botões que nos permitem aceder aos diversos menús do site. Aqui, ao clicar num dos menús, é invocada uma função, ''moving();'' com dois parâmetros. Esta função, detalhada abaixo, permite então que haja movimento nas div de conteúdo (denominadas ''"container,container1,container2,...''). Os parâmetros que são lá enviados, variam conforme o botão clicado, para que o movimento nos leve sempre ao menú onde clicamos. Tomando de exemplo o botão de id "cont", a função irá receber um valor para ''X'' e um valor para ''Y'', respectivamente. Estes valores são de seguida aplicados dentro da função, tornando então o movimento possível, com recorrência ao animate do jQuery o movimento vertical e horizontal.
<br>
<br>
<br>
<br>
 +
A class "logo":<br>
 +
CSS:<pre>
 +
.logo {
 +
position: absolute;
 +
width: 400px;
 +
height: 200px;
 +
}
 +
</pre>
 +
<br>
 +
HTML/JavaScript:
 +
<pre>    <script>
 +
if(hero==1){
 +
    document.write("<img class='pers' src='imgs/logos/logog.png' />");
 +
    }
 +
else {
 +
    document.write("<img class='pers' src='imgs/logos/logob.png' />");
 +
}
 +
</script>
 +
</pre>
 +
A class "logo" é a class que gera o logótipo do site, consoante o utilizador se encontre no "Lado Herói" ou no "Lado Vilão", esta class também alberga o código Javascript que faz com que alteração dos logótipos seja possível.
 +
<br>
 +
<br>
 +
A class "Spider":<br>
 +
<pre>
 +
.spider {
 +
top: 25%;
 +
position: relative;
 +
text-align:right;
 +
</pre>
 +
<br>
 +
A class "Spider", é a class que gera a personagem presente em cada uma das páginas. É esta a class que contém o script necessário para que a alteração da personagem, consoante o "Lado" em que se está, seja possível.
 +
<br>
 +
<br>
 +
A Class "Conteudo":
 +
<br>
 +
<pre>
 +
position: absolute;
 +
top: 27%;
 +
left: 5%;
 +
width: 65%;
 +
height: 65%;
 +
background-image: url(imgs/bub/bg.png);
 +
border: 2px solid #000;
 +
font-family: Arial, Helvetica, sans-serif;
 +
font-size: 12px;
 +
padding: 10px;
 +
text-align: left;
 +
overflow: auto;
 +
</pre>
 +
<br>
 +
A Class "Conteudo" contém a informação presente em cada uma das páginas. Esta class também impõe regras em relação às tags "h1" e "img". Dentro desta class é frequente a existência das class's "div_cont" e "texto_cont", dentro da class "div_cont" escrevemos o texto que queríamos apresentar, e a class "texto_cont", que formata os textos presentes dentro da class para um modo de dispaly inline .
== Funções no Javascript ==
== Funções no Javascript ==
Line 91: Line 183:
};
};
</pre>
</pre>
-
<br> A função moving permite a transição entre os menus (divs).
+
<br> Como explicado acima, esta é a função que permite o movimento das ''divs "container"''. Para obter os movimentos separados, isto é, primeiro realizar o movimento horizontal, e de seguida o vertical, optamos por invocar a função duas vezes para cada elemento. Ainda foi ponderado o movimento diagonal, que implicaria a simples mudança exemplificada em baixo, mas a nível estético, e tendo em conta o conteúdo do site, concluímos que esta sera a melhor concepção.
 +
<pre>$(".container").animate({"left":x,"top":y}, "slow");</pre>
<br>
<br>
<br>
<br>
Line 110: Line 203:
</pre>
</pre>
-
A função mudar permite a alteração do ambiente gráfico de herói para vilão ou vice-versa, de acordo com o valor da variável "hero" (0 ou 1). O valor guardado na variável "hero" está guardado na própria página, o que permite que não haja quaisquer alterações quando o utilizador fizer refresh na página.
+
A função mudar permite a alteração do ambiente gráfico de herói para vilão ou vice-versa, de acordo com o valor da variável "hero" (0 ou 1). O valor guardado na variável "hero" está guardado na variável window.name, que é uma variável que se mantém declarada enquanto a janela do browser estiver aberta. Assim sendo, com simples trocas entre 0 e 1, é possível que o ambiente seja alternado sem recorrer a cookies nem variáveis de sessão.
<br>
<br>
<br>
<br>
Line 132: Line 225:
<br>
<br>
<br>
<br>
-
Alteração dos logos
+
 
-
<pre>
+
== Integração com outras tecnologias ==
-
<div class="logo">
+
 
-
    <script>
+
jQuery - O jQuery foi essêncial na construção do nosso site, pois este tornou possível o  movimento das div (quadrados principais de BD). A função a que recorremos para que tal sucedesse foi a animate, onde nos era possível definir, entre outras funcionalidades, o movimento para a esquerda/direita, e para cima/baixo através de valores de percentagem. Além disso ainda nos era possível definir a velocidade de movimento com valores predefinidos. Neste caso recorremos ao "Slow".
-
if(hero==1){
+
 
-
    document.write("<img class='pers' src='imgs/logos/logog.png' />");
+
== Soluções técnicas para problemas encontrados ==
-
    }
+
 
-
else {
+
 
-
    document.write("<img class='pers' src='imgs/logos/logob.png' />");
+
===Problema #1===
-
}
+
 
-
</script>
+
 
-
</pre>
+
A início, apesar de termos concebido um código que realizasse o movimento (testado num ficheiro independente), este, quando aplicado, ou não funcionava, ou não arrastava os elementos necessários na totalidade. Após alguma insistência com o JavaScript, concluímos que o problema residia na CSS aplicada, pois esta tinha sido feita de maneira a que tudo se apresentasse correctamente, mas de certa forma, sem pensar no movimento que estas teriam que efectuar.
-
Este script permite alterar o logótipo do site quando se alterna entre o "Lado Bom" e o "Lado Mau", de acordo com o valor presente na variável "hero".
+
A solução foi criar novamente uma CSS do zero, já a pensar no que futuramente teria que suceder.
-
<br>
+
 
-
<br>
+
 
 +
===Problema #2===
 +
 
 +
 
 +
Após termos o movimento a funcionar correctamente numa única div, começámos a problematizar sobre possíveis soluções para optimizar e encurtar o código. A solução encontrada é exemplificada a seguir:
 +
 
 +
<pre><button id="home" onClick="moving('+=100%','+=200%');"></pre>
 +
 
 +
Sendo moving(); a função que possibilitava o movimento das 6 divs principais, e tendo em conta que quando havia movimento, todas tinham que se movimentar a mesma distância, optámos por passar os valores em parâmetros da função. Assim, "+=100%" seria o valor que definia o movimento esquerda/direita, e "+=200%" seria o valor do movimento cima/baixo.
 +
 
 +
===Problema #3===
 +
 
 +
A criação do botão que faz a transferência do lado bom para o lado mau criou desde início um problema. Para que a troca fosse bem sucedida, teria que existir uma variável que se mantivesse declarada mesmo após um "refresh" da página. Como não recorremos a PHP/ASP, variáveis de Sessão estavam fora de questão, e cookies pareciam de certa forma um exagero para algo tão "simples".  
 +
Optámos então por recorrer ao window.name. O window.name é uma propriedade da janela que nos diz o nome da mesma. Como não havia utilidade para tal variável no nosso site, acabámos por lhe atribuir o valor de 1 ou 0 para tornar possível que se alternasse entre herois e vilões.
 +
 
 +
== Melhoramentos Futuros ==
 +
 
 +
Devido á nossa falta de tempo e organização ficaram alguns objectivos a cumprir que gostaríamos de ver implementados, entre eles:
 +
 
 +
 
 +
Conteúdo do site em balões estilo banda desenhada;
 +
 
 +
Criação de uma zona de registo/login com base de dados para  a compra online dos nossos produtos;
 +
 
 +
Zona de comentários;
 +
 
 +
Criação de um sistema do género “carrinho de compras” para a possível venda dos nossos produtos;
 +
 
 +
== Conclusão ==
 +
 
 +
Um dos principais objectivos do nosso projecto era a navegabilidade alternativa que este propõe aos utilizadores. Apesar dos problemas todos que nos surgiram para a aplicar e do tempo dispendido.
 +
 +
Pretendiamos um site com um aspecto familiar aos amantes da Banda Desenhada e, em suma, podemos dizer que o conseguimos mesmo que não tenha sido como planeado.
 +
 
 +
Com este projecto podemos concluir que apesar dos prazos impostos e de todas as adversidades encontradas na sua realização ficámos satisfeitos com o resultado final mas sempre com o sentimento de que poderíamos ter feito melhor.

Latest revision as of 12:25, 22 June 2011

Logo.jpg
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox