Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
- <!--
- Parallax Effect
- http://www.wildwitchproject.com/
- http://www.rpgvale.com.br/
- htpp://blogletar.blogspot.com/
- Licenced by: Creative Commons 3.0
- Requeriments:
- JQuery Framework
- Parallax é um efeito clássico de simulação de 3D muito usado no Super Nintendo
- ( http://en.wikipedia.org/wiki/Parallax_scrolling ) e outros consoles.
- A diferença deste script para à maioria dos efeitos parallax de páginas web se
- deve ao fato dele trabalhar com objetos e não apenas com scroll de imagens.
- instalação
- O coneúdo padrão do seu blog deve ficar um nível acima do corpo. Assim:
- #main {
- position: relative;
- z-index: 1;
- }
- Criando layers
- Use a função
- function parallax_addLayer(ob, scale, x, y)
- onde:
- ob = Jquery Object, como por exemplo $("#minhaImagem")
- scale = Quantidade de vezes que o movimento é menor doque a página. Ex.: 8 para o background
- x = posicionamento X apartir do centro absoluto da tela (este script é para blogs e este é o posicionamento clássico)
- exemplo: se o corpo do seu blog tem 900px de largura e você esta usando uma imagem de 256px de largura você pode
- posicionar ela em x= -450 - 256 (onde -450 é a metade da largura para a imagem aparecer na margem esquerda e -256
- é para ela sair de baixo da margem esquerda)
- y = posicionamento Y apartir do topo do documento, ele aceita 2 (duas) formas:
- Número inteiro => um valor absoluto de posicionamento
- Fração => Entre 0 e 1, exemplo 0.5. Posiciona o elemento proporcionalmente em relação ao documento. Por exemplo o
- valor 0.5 posiciona o elemento na metade do scroll.
- Adicionalmente além de você poder usar imagens o script suporta objetos Flash e SVG
- Para inserir o SVG:
- parallax_initSVGContainer(id,src,w,h)
- onde:
- id = nome do elemento (ID), único para o documento
- src = url do arquivo SVG
- w = largura do SVG
- h = altura do SVG
- Exexmplos:
- // SVG
- parallax_addLayer(parallax_initSVGContainer("parlx_L0","a.svg",256,256), 2, 0,0.5);
- // SWF (Flash)
- parallax_addLayer(parallax_initSWFContainer("parlx_L0","a.swf",256,256), 2, 0,0.5);
- // Imagem
- parallax_addLayer(parallax_initIMGContainer("parlx_L2","rundog.gif",64,64), 4, 100,0.5);
- Compatibilidade
- O script é compatível com HTML4 e HTML5
- SVG não funciona no Internet Explorer, se precisar de gráficos vetoriais nele use o Flash.
- -->
- <style>
- #parallaxContainer {
- position: fixed;
- z-index: 0;
- width: 100%;
- height: 100%;
- left: 0px;
- top: 0px;
- margin: 0;
- padding: 0;
- overflow: hidden;
- background: fixed;
- background-position: 0 0;
- }
- .parallaxLayers {
- position: absolute;
- z-index: 0;
- border: 0px none;
- margin: 0px;
- padding: 0px;
- overflow: hidden;
- }
- </style>
- <script type="text/javascript">
- <!-- //
- var parallax_Box;
- var parallax_Layer0;
- var parallax_Layer0Inf = {mp:0,sc:1};
- var parallax_layers = [];
- function parallax_initSVGContainer (id,src,w,h)
- {
- var namespacesvg = "http://www.w3.org/2000/svg";
- var svg;
- // verifica suporte à SVG, se não tiver com certeza é IE
- if(document.createElementNS)
- {
- try
- {
- svg = document.createElement("iframe");
- svg.className = "parallaxLayers";
- svg.setAttribute("id", id);
- $(svg).css("width",w.toString()+"px").css("height",h.toString()+"px");
- svg.src = src;
- parallax_Box.appendChild(svg);
- return $(svg);
- } catch (e) {/*alert(e.message);*/};
- }
- return null;
- }
- function parallax_initSWFContainer (id,src,w,h)
- {
- }
- function parallax_initIMGContainer (id,src,w,h)
- {
- var img = document.createElement("img");
- img.className = "parallaxLayers";
- img.setAttribute("id", id);
- $(img).css("width",w.toString()+"px").css("height",h.toString()+"px");
- img.setAttribute("src",src);
- parallax_Box.appendChild(img);
- return $(img);
- }
- function parallax_setBackground (src, maxPixels, scale)
- {
- parallax_Layer0.css("background","url('" + src + "')");
- parallax_Layer0Inf = {mp:maxPixels, sc:(1/scale)};
- }
- function parallax_top(ph,s,sc,x)
- {
- s = 1/s;
- return parseInt(ph*x*s + ph*sc*s);
- }
- function parallax_bottom(ph,s,sc,x)
- {
- s = 1/s;
- return parseInt(ph*x*s + ph*sc*s);
- }
- function parallax_addLayer(ob, scale, x, y)
- {
- var _y = 0;
- if (y<1 && y>=0) // medida em proporção
- _y = y;
- else
- _y = y / ($(document).height() - $(window).height());
- parallax_layers.push({ob:ob, sc:scale,x:x,y:_y});
- }
- function parallax_size(e)
- {
- var w = Math.floor($(window).width() / 2);
- for( var l in parallax_layers)
- {
- var ly = parallax_layers[l];
- ly.ob.css("left", String(w+ly.x) + "px");
- }
- }
- function parallax_run(e)
- {
- var wh = $(window).height();
- var ph = $(document).height() - wh;
- var scT = $(document).scrollTop();
- var mSc = -scT / ph;
- parallax_Layer0.css("background-position","center "+parseInt(parallax_Layer0Inf.mp*mSc*parallax_Layer0Inf.sc).toString()+"px");
- //parallax_Layer1.css("top",parseInt(ph*0.5/8 + ph*mSc/8).toString()+"px");
- for( var l in parallax_layers)
- {
- var ly = parallax_layers[l];
- ly.ob.css("top", parallax_top(ph,ly.sc,mSc,ly.y).toString() + "px");
- }
- }
- /**
- * Inicializa o widget parallax
- **/
- function parallax_init()
- {
- //Nucleo do widget (não mecha)
- parallax_Box = document.createElement("div");
- parallax_Box.id = "parallaxContainer";
- document.body.insertBefore(parallax_Box, document.body.firstChild);
- // Modificar aqui para atender suas necessidades
- // Ver tutorial em para detalhes
- parallax_Layer0 = $(parallax_Box);
- parallax_addLayer(parallax_initSVGContainer("parlx_L0","a.svg",256,256), 2, 0,0.5);
- parallax_addLayer(parallax_initSVGContainer("parlx_L1","a.svg",692,500), 4, 0,0.5);
- //parallax_addLayer(parallax_initIMGContainer("parlx_L2","rundog.gif",64,64), 4, 100,0.5);
- parallax_addLayer(parallax_initSWFContainer("parlx_L3","rundog.gif",64,64), 4, 100,0.5);
- parallax_setBackground("Ledremoto.png",500,8);
- //Ajustes finais
- $(window).scroll(parallax_run);
- $(window).resize(parallax_size);
- parallax_size(null);
- parallax_run(null);
- }
- $("document").ready(parallax_init);
- // -->
- </script>
Advertisement
Add Comment
Please, Sign In to add comment