Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Archie

Estrutura de rolagem

Recommended Posts

Oi gente, primeira vez que posto aqui... já venho acompanhando vcs, e sei que aqui tem muita gente que domina totalmente... por isso quero q vcs me ajudem a descobrir o que está errado no script abaixo... ele é um teste que eu tava fazendo pra criar uma estrutura de rolagem... mas deu errado http://forum.imasters.com.br/public/style_emoticons/default/cry.gif eu nem sei onde tá o erro... o código está aqui:

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript">

// Este script deverá efetuar a rolagem de um objeto partir de um evento.
// Comaentado e adaotado por Archie - thiagorc1991@gmail.com.

//## Declaração de variáveis ############################################################################

var confirmacao; /* Liga e desliga a rolagem, estando em true e false, respectivamente. Não deve ser mo-
dificada. */

var velocidade = 1; // Controla a velocidade de rolagem. Quanto maior, mais devagar.

var quantidade = 1; /* Controla a quantidade de pixels rolados por x tempo (determinado pela variável velocidade); 
Não deve ser modificada */

//## Função de verificação ##############################################################################

function verificacao (obj , acao) {

/* Verifica se a ação é 'parar'; nesse caso, seta a variável 'confirmacao' em false; caso contrário, seta
em true e chama a função 'rolar': */
if (acao == "parar") {
confirmacao = false;
}
else {
confirmacao = true;
rolar (obj, acao);
}

}

//## Função de rolagem ################################################################################
##

function rolar (obj, acao) {

// Verifica se todas as variáveis estão setadas; caso contrário, retorna falso:
if (acao == "cima") {
document.getElementsById(obj).scrollTop -= quantidade;
}
else if (acao == "baixo") {
document.getElementsById(obj).scrollTop += quantidade;
}
else if (acao == "esquerda") {
document.all(obj).scrollLeft -= quantidade;
}
else if (acao == "direita") {
document.getElementsById(obj).scrollLeft += quantidade;
}

// Estabelece um loop para que a rolagem continue:
setTimeout("rolar ('" + obj + "' , '" + acao + "'); " , velocidade);

}

</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<table width="100"  border="1">
 <tr>
   <th width="100" scope="col"> <div id="div" style="width: 90px; height: auto; overflow: hidden;"><nobr>jb jbkjbkj bkjbkjbkjbkjbkjbkjbkjbkj bjb kjb kj bkjb kjbkjb kjb kjb </nobr></div> </th>
 </tr>
</table>
<a href="#" onClick="return false; " onMouseOver="verificacao ('div' , 'esquerda'); " onMouseOut="verificacao('div' , 'parar'); " onMousedown="quantidade = 5; " onmouseup="quantidade = 1; "> < </a>            <a href="#" onclick="return false; " onmouseover="verificacao ('div', 'direita'); " onmouseout="verificacao ('div', 'parar'); " onmousedown="quantidade = 5; " onmouseup="quantidade = 1; "> > </a>
</body>
</html>

 

 

vlws gente, flw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a resposta na lata eu não vou dar, pois nem ver o seu código eu vi..Mas, vou tentar te ajudar de outro jeito, fazendo com que você mesmo descubra o erro.. você falou que estava tentando criar uma estrutura de rolagem(??) e deu erro, ok, mas qual erro foi esse? Alguma mensagem de erro? Se você estiver usando o IE, olhe no canto inferior esquerdo do navegador, se estiver com um icone amarelo, é pq tem erro.. para ver, basta clicar duas vezes nele... Se você estiver usando firefox, vá em ferramentas > console do javascript..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu achei alguns erros e arrumei, só que ainda não funcionando direito, só q dai você arruma a sua lógica..

 

Erros:

 

//## Função de rolagem ##################################################################################

Usa o // para comentários de uma linha só, se tiver mais de uma (esse ta com quebra), usa o /* */

 

/*## Função de rolagem ##################################################################################*/

 

 

document.getElementsById(obj).scrollTop -= quantidade;

Não é document.getElementsById, e sim document.getElementById... sem o "s" no Elements..... todos estão errados..

 

 

document.all(obj).scrollLeft -= quantidade;

document.all só funciona no Internet Explorer... usa sempre o document.getElementById.....

 

 

 

 

Cara, instala o Firefox (se você ainda não tem) porque é muito mais fácil de achar os erros no Javascript.... o IE só fala "Objeto esperado, linha 1 coluna 1" e você fica que nem um cabaço procurando, já o Firefox localiza os erros bem mais precisos, eu achei esses erros com a ajuda do Firefox... na moral, nao vai se arrepender..

 

 

Testando aqui ele fez o scroll pra direita, pra esquerda não, agora arruma ai!!

 

falou!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra... dei uma limpada no código e fiz ele funcionar...

 

mas parece que ele ta com um probleminha... (naum sei qual...) dá uma analisada, e qq dúvida posta aqui dinovo..

 

os erros estavam nos "GetElementsById" que eram pra ser "GetElementById"

 

e teve o tal de "document.all" que tava dando erro... e mudei pra "GetElementById" tb...

 

beleza?!

 

[]s

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><script language="javascript">var confirmacao; var velocidade = 1; var quantidade = 1; function verificacao(obj , acao) {	if (acao == "parar") {	confirmacao = false;	}	else {	confirmacao = true;	rolar (obj, acao);}}function rolar (obj, acao) {	if (acao == "cima") {  document.getElementById(obj).scrollTop -= quantidade;	}	else if (acao == "baixo") {  document.getElementById(obj).scrollTop += quantidade;	}	else if (acao == "esquerda") {  document.getElementById(obj).scrollLeft -= quantidade;	}	else if (acao == "direita") {  document.getElementById(obj).scrollLeft += quantidade;	}	setTimeout("rolar ('" + obj + "' , '" + acao + "'); " , velocidade);}</script><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Untitled Document</title></head><body><table width="100" border="1"><tr><th width="100" scope="col"> <div id="div" style="width: 90px; height: auto; overflow: hidden;"><nobr>jb jbkjbkj bkjbkjbkjbkjbkjbkjbkjbkj bjb kjb kj bkjb kjbkjb kjb kjb </nobr></div> </th></tr></table><a href="#" onClick="return false; " onMouseOver="javascript:verificacao('div' , 'esquerda'); " onMouseOut="verificacao('div' , 'parar'); " onMousedown="quantidade = 5; " onmouseup="quantidade = 1; "> < </a>        <a href="#" onclick="return false; " onmouseover="verificacao ('div', 'direita'); " onmouseout="verificacao ('div', 'parar'); " onmousedown="quantidade = 5; " onmouseup="quantidade = 1; "> > </a></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ah... agora qm sacou fui eu!!! hehehehehebeleza... eh bom saber... assim fica mais fácil de corrigir bugs em Scripts prontos!!!vlws:-D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, coloquei três coisa e acho que funcionou, uma variavel pra controlar o timer...

 

 

var timer;

function verificacao(obj , acao) {if (acao == "parar") {confirmacao = false;// AQUI LIMPA O TIMER!!!!!!!!!!!!!!clearTimeout(timer);}else {confirmacao = true;rolar (obj, acao);}}

// ATRIBUI O TIMER PRA VARIAVEL!!timer = setTimeout("rolar ('" + obj + "' , '" + acao + "'); " , velocidade);

 

Aqui tem o codigo completo

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><script language="javascript">var confirmacao;var timer;var velocidade = 1;var quantidade = 1;function verificacao(obj , acao) {if (acao == "parar") {confirmacao = false;clearTimeout(timer);}else {confirmacao = true;rolar (obj, acao);}}function rolar (obj, acao) {if (acao == "cima") { document.getElementById(obj).scrollTop -= quantidade;}else if (acao == "baixo") { document.getElementById(obj).scrollTop += quantidade;}else if (acao == "esquerda") { document.getElementById(obj).scrollLeft -= quantidade;}else if (acao == "direita") { document.getElementById(obj).scrollLeft += quantidade;}timer = setTimeout("rolar ('" + obj + "' , '" + acao + "'); " , velocidade);}</script><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Untitled Document</title></head><body><table width="100" border="1"><tr><th width="100" scope="col"> <div id="div" style="width: 90px; height: auto; overflow: hidden;"><nobr>jb jbkjbkj bkjbkjbkjbkjbkjbkjbkjbkj bjb kjb kj bkjb kjbkjb kjb kjb </nobr></div> </th></tr></table><a href="#" onClick="return false; " onMouseOver="javascript:verificacao('div' , 'esquerda'); " onMouseOut="verificacao('div' , 'parar'); " onMousedown="quantidade = 5; " onmouseup="quantidade = 1; "> < </a>        <a href="#" onclick="return false; " onmouseover="verificacao ('div', 'direita'); " onmouseout="verificacao ('div', 'parar'); " onmousedown="quantidade = 5; " onmouseup="quantidade = 1; "> > </a></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa :P MUITAAAA gente respondeu, vlw gente!

 

bom, quanto ao erro do coment, (// e /*), esse erro na verdade não existe n... ehq o forum eh mais curtinho e quebra umas linhas q n saum pra kebrar... jah o get element... realmente, esse ai DEVE ser o erro mesmo... vlws, vo testar e jah retorno o resultado! :D

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

 

EDIT GENTE!!!!!!! VLWS MESMO, EU CONSEGUI!!!!!!!!

depois de mudar o get elements, fiou apenas um problema guenzo... qnd eu tirava o mouse ele não voltava ao normal... ai que eu me toquei, que o que faltava era um if na função de rolar... ele deveria verificar se a variavel "confirmacao" era false, e ai parava a função... afinal, não era essa a função da varivel q eu criei??? bom, mas que cabeça essa minha http://forum.imasters.com.br/public/style_emoticons/default/yay.gif

 

pra aqueles que estiverem interessados, aqui esta o codigo 100%: http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript">

// Este script deverá efetuar a rolagem de um objeto partir de um evento.
// Comaentado e adaotado por Archie - thiagorc1991@gmail.com.

//## Declaração de variáveis ############################################################################

var confirmacao = false; /* Liga e desliga a rolagem, estando em true e false, respectivamente. Não deve ser mo-
dificada. */

var velocidade = 1; // Controla a velocidade de rolagem. Quanto maior, mais devagar.

var quantidade = 1; /* Controla a quantidade de pixels rolados por x tempo (determinado pela variável velocidade); 
Não deve ser modificada */

//## Função de verificação ##############################################################################

function verificacao (obj , acao) {

/* Verifica se a ação é 'parar'; nesse caso, seta a variável 'confirmacao' em false; caso contrário, seta
em true e chama a função 'rolar': */
if (acao == "parar") {
confirmacao = false;
}
else {
confirmacao = true;
rolar (obj, acao);
}

}

//## Função de rolagem ################################################################################
##

function rolar (obj, acao) {

if (confirmacao == false) {
return false;
}

if (acao == "cima") {
document.getElementById(obj).scrollTop -= quantidade;
}
else if (acao == "baixo") {
document.getElementById(obj).scrollTop += quantidade;
}
else if (acao == "esquerda") {
document.getElementById(obj).scrollLeft -= quantidade;
}
else if (acao == "direita") {
document.getElementById(obj).scrollLeft += quantidade;
}

// Estabelece um loop para que a rolagem continue:
setTimeout("rolar ('" + obj + "' , '" + acao + "'); " , velocidade);

}

</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<table width="100"  border="1">
 <tr>
   <th width="100" scope="col"> <div id="div" style="width: 90px; height: auto; overflow: hidden;"><nobr>jb jbkjbkj bkjbkjbkjbkjbkjbkjbkjbkj bjb kjb kj bkjb kjbkjb kjb kjb </nobr></div> </th>
 </tr>
</table>
<a href="#" onClick="return false; " onMouseOver="verificacao ('div' , 'esquerda'); " onMouseOut="verificacao ('div' , 'parar'); " onMousedown="quantidade = 5; " onmouseup="quantidade = 1; "> < </a>            <a href="#" onclick="return false; " onmouseover="verificacao ('div', 'direita'); " onmouseout="verificacao ('div', 'parar'); " onmousedown="quantidade = 5; " onmouseup="quantidade = 1; "> > </a>
</body>
</html>

 

 

obrigado infinitas vezes!!! esse fórum é show!! agora que fui ajudado, estou ansioso por ajudar (principalmente em PHP, pq em javascript... XD)

 

tchau!

 

*pode fechar o topico*

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.