Script para auto ajustar a pagina de acordo com a resolução

_M4st1c_

Power Member
Isto como é meio programação meio web, decidi postar aqui.

Queria um script para auto ajustar a pagina de acordo com a resolução de cada visitante da pagina? (script em javascript)

por exemplo
800x600 ela ajusta-se..
1024x768 ela ajusta-se..

podem-me ajudar?

Cumps ;)
 
Está na secção correcta :)

Não podes usar apenas CSS para "ajustar" a página? Usando percentagens, como 75% para uma tabela, faz com que as coisas tenham um tamanho relativo, e aparece igualmente bem em ambas as resoluções.
 
Usa percentagens, javascript pode não estar ligado.. e se tiveres percentagens é melhor que contas com valores absolutos.

A não ser que tenhas 1 objecto flash e seja esse que queres redimensionar, ai não tens outra hipótese, mas não me parece o caso, faz como te disseram.
 
Ele estava só a explicar.
Em vez de uma tabela ocupar exactamente 600px numa resolução 800x600 e exactamente 960px numa resolução 1280x1024, podes fazer com que essa tabela ocupe exactamente 75% (800 * 75/100 = 600, e 1280 * 75/100 = 960), e qualquer que seja a resolução, ela terá o mesmo tamanho relativo.

Uma medida em percentagem não é uma medida exacta. 10% de 200 é 20, mas 10% de 5000 é 500. 25% de 500 é 125 e 25% de 2000 é 500.

Queres que a página seja dimensionada conforme a resolução, certo? Então, como exemplo, troca onde diz <body> por <body><div style="width: 75%; background-color: #AAAAAA"> e onde diz </body> por </div></body>.
 
Última edição:
O codigo é assim:

<body style="background-image: url('On_the_Radio_by_anemptyhouse-1200x700.jpg')">

</body>


como está ai não consegui. :mad:


No meu PC fica bem, tem resolução 1280x800. ;)

No PC do meu irmão fica muito grande, tem resolução 1024x768.:005:

cumps :009:
 
Pois, se a imagem tem de dimensões 1200x700, fica cortada horizontalmente em 1024x768.
Nesse caso a percentagem não se aplica. O que te aconselho a fazer é redimensionares a imagem para 1080x630 (90% do tamanho original), nem que seja no paint. Assim, aparece inteira nas duas resoluções.

Depois muda o nome da imagem para "On_the_Radio_by_anemptyhouse-1080x630.jpg", só mesmo para fazer sentido, e muda o código do teu <body> para
Código:
 <body style="background: url('On_the_Radio_by_anemptyhouse-1080x630.jpg') no-repeat fixed center;">
 
Pois, se a imagem tem de dimensões 1200x700, fica cortada horizontalmente em 1024x768.
Nesse caso a percentagem não se aplica. O que te aconselho a fazer é redimensionares a imagem para 1080x630 (90% do tamanho original), nem que seja no paint. Assim, aparece inteira nas duas resoluções.

Depois muda o nome da imagem para "On_the_Radio_by_anemptyhouse-1080x630.jpg", só mesmo para fazer sentido, e muda o código do teu <body> para
Código:
 <body style="background: url('On_the_Radio_by_anemptyhouse-1080x630.jpg') no-repeat fixed center;">

assim fica mal no meu monitor, porque fica tipo duas colunas de cada lado brancas, não há maneira de resolver isso?

cumps ;)
 
assim fica mal no meu monitor, porque fica tipo duas colunas de cada lado brancas, não há maneira de resolver isso?

cumps ;)

Tendo em conta que existem dezenas de resoluções diferentes, acho que a solução para o teu caso, passa por teres uma imagem relativamente grande (ajustada p.e. para 1024*768), e colocares uma cor sólida como fundo...

Um preto, branco, laranja, azul, seja o que for que combine com a tua imagem.

Assim, e seguindo as instruções que o Kayvlim deu:

PHP:
<body style="background: #FFFFFF url('On_the_Radio_by_anemptyhouse-1080x630.jpg') no-repeat fixed center;">

Onde #FFFFFF é precisamante o código da cor de fundo que queres.
 
Então qual é a cor que mais se adequa a esta imagem:

On_the_Radio_by_anemptyhouse-1080x630.jpg
 
Eu fazia o seguinte,

tens a imagem a por exemplo 1024 x 768 px centrada no ecra, cortas uma tira de 1 px de altura do fundo da imagem e usas como background do body

assim vai parecer que é só uma imagem que se adequa a todas as resoluções
 
Eu fazia o seguinte,

tens a imagem a por exemplo 1024 x 768 px centrada no ecra, cortas uma tira de 1 px de altura do fundo da imagem e usas como background do body

assim vai parecer que é só uma imagem que se adequa a todas as resoluções

penso que querias dizer "1 px de largura", assim é que se adequava melhor, pois a imagem repetia-se horizontalmente, e passava a ficar independente da largura da janela.
isso seria o aconselhável, mas como podes ver pelo post anterior dele, não dá para fazer isso com aquela imagem. só daria com fundos mais simples
 
Desculpem o double post, mas como ninguem responde tem que ser. xD

este código devia dar?

<style>
.r640 { background-image:url(http://mail.google.com/mail/help/images/logo.gif); }
.r800 { background-image:url(http://forum.mxstudio.com.br/style_images/1/logomx.gif); }
.r1024 { background-image:url(http://www.mxstudio.com.br/images/TopoCf.gif); }
.r1280 { background-image:url(http://www.mxstudio.com.br/images/topo_cf.gif); }
</style>
<script>
var resolucao = new Array();
resolucao.push({tolerancia:new Array(0,640) , height:480} );
resolucao.push({tolerancia:new Array(641,800) , height:600} );
resolucao.push({tolerancia:new Array(801,1024) , height:768} );
resolucao.push({tolerancia:new Array(1025,1280), height:1024});
var refreshBackground = function(){
for(var i=0; i < resolucao.length;i++){
if(document.body.clientWidth >= resolucao.tolerancia[0] && document.body.clientWidth <= resolucao.tolerancia[1]){
document.body.className = 'r'+resolucao.tolerancia[1];
resizeTo(resolucao.tolerancia[1],resolucao.height);
}
}
}
window.onload = function(){
refreshBackground();
window.onresize = refreshBackground;
}
</script><body></body>


E este?

<html>
<head>
<script type="text/javascript">
function getBG(x)
{
switch(x)
{
case 1600:
document.body.background = "http://b.imagehost.org/0977/On_the_Radio_by_anemptyhouse-1600x1200.jpg"
break;

case 1280:
document.body.background = "http://b.imagehost.org/0612/On_the_Radio_by_anemptyhouse-1280x1024.jpg"
break;

case 1024:
document.body.background = "http://b.imagehost.org/0316/On_the_Radio_by_anemptyhouse-1024x768.jpg"
break;

case 800:
document.body.background = "http://b.imagehost.org/0914/On_the_Radio_by_anemptyhouse-800x600.jpg"
break;

case 640:
document.body.background = "http://b.imagehost.org/0154/On_the_Radio_by_anemptyhouse-640x480.jpg"
break;

}
}
</script>
</head>
<body onLoad="getBG(screen.width)">
</body>
</html>
 
Última edição:
tens k ter calma pk ainda há quem ande a trabalhar pro bronze e não convem levar o pc... axo k te consigo orientar isso, mais logo ja te digo algo :)
 
Back
Topo