Ir para conteúdo
Fórum Script Brasil
  • 0

efeito marquee JS+CSS


hipnos na area

Pergunta

[motivo dessa script] desuzo da TAG marquee(padrões W3C)

vi varias pessoas pedindo efeito MARQUEE em JAVASCRIPT

achei uns mas o que eles faziam eles DIVIDIAM a STRING

tipo letra por letra

e assim tags de HTML não rolavam direito

então fiz esse EFEITO

Efeito estilo marquee que "ROLA" tags de HTML tambem

CSS+JS

e pronto um efeito bem parecido ^^ com opções de TOP, LEFT, RIGHT e DOWN

e opção de "intervalo" de tempo =]

coloquei as opções "PLAY" e "STOP" pro efeito travar e destravar

[atualizado]

adicionado EFEITO REPETIR (a ideia de Cido)

<html>
<head>
<title>marquee css+js by silverfox</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<style rel="stylesheet" type="text/css">
/*<![CDATA[*/
#caixa{
background:#fc0;
width:600px;
height:100px;
overflow:hidden;
}
#marquee{
width:400px;
background:#ddd;
}
/*]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
var Rollar = "sim";/*Não Altere faz parte do EFEITO*/
var tipo = "left";/*Altere para usar as opções LEFT, RIGHT, TOP e DOWN*/
var roll = 0;/*Não Altere faz parte do EFEITO*/
var tmp = 29;/*Defina a velocidade aqui*/

function Duplicar(){
    var Marquee = document.getElementById("Marquee");
    Cont = Marquee.innerHTML;
    if (tipo=="left" || tipo=="right"){
        IDA = "<div style=\"float:left; position:relative;margin-left:-"+Marquee.clientWidth+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";
        IDB = "<div style=\"float:right; position:relative;margin-right:-"+Marquee.clientWidth+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";
        IDC = IDA + IDB + Cont;
    }
    if(tipo=="top" || tipo=="down"){
        IDA = "<div style=\"float:left; position:relative;margin-top:-"+Marquee.clientHeight+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";
        IDB = "<div style=\"float:left; position:relative;margin-bottom:-"+Marquee.clientHeight+";width:"+Marquee.clientWidth+"; height:"+Marquee.clientHeight+";\">"+Cont+"</div>";
        IDC = IDA + Cont + IDB;
    }
    Marquee.innerHTML = IDC;
}
function Fmarquee(){
    var Marquee = document.getElementById("Marquee");
    var Caixa = document.getElementById("caixa");

if(tipo=="left" || tipo=="right"){
    var Altura = Caixa.clientWidth;
}else if(tipo=="down" || tipo=="top"){
    var Altura = Caixa.clientHeight;
}

    roll++;

    if(Altura==roll){
        roll = (roll*-1);
    }

    if(tipo == "top"){
        Marquee.style.marginTop = (roll*-1)+"px";
    } else if (tipo == "down"){
        Marquee.style.marginTop = roll+"px";
    } else if (tipo == "left"){
        Marquee.style.marginLeft = (roll*-1)+"px";
    } else if (tipo == "right"){
        Marquee.style.marginLeft = roll+"px";
    }

    if(Rollar == "sim"){
       setTimeout("Fmarquee()",tmp);
    }
}
function playM(){
    Rollar = "sim";
    Fmarquee();
}

function stopM(){
    Rollar = "não";
}

window.onload = function(){
    Rollar = "sim";
    Fmarquee();
    Duplicar();
}
//]]>
</script>

</head>
<body>
  <div id="caixa" onmouseout="playM();" onmouseover="stopM();">
    <div id="Marquee">
        <img src="foto.gif" alt="foto" width="100" height="100">
      </div>
  </div>
</body>
</html>

se acaso alguém tiver um codigo melhor ou mais simples ou mais eficinte

posta ae ^^

o tópico esta aberto a discussões sobre melhoras no codigo

em breve vou por a opção BEHAVIOUR(opicional)

abraços...

Editado por hipnos na area
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

seria complicado isso por dois motivos =/

primeiro é que o efeito funciona assim, a uma barra de rolagem oculta o conteudo

vai deslizando(aumentando a margem superior aos poucos) para baixo em quando some

o margin-top recebe um valor negativo.

o segundo seria por que eu procuerei fazer indenticamente ao MARQUEE(é nem tanto assim hehehe)

mas há uma maneira de se fazer isso seria duplicar os objetos

em breve irei por sua sugestão

;)

Link para o comentário
Compartilhar em outros sites

  • 0
seria complicado isso por dois motivos =/

primeiro é que o efeito funciona assim, a uma barra de rolagem oculta o conteudo

vai deslizando(aumentando a margem superior aos poucos) para baixo em quando some

o margin-top recebe um valor negativo.

o segundo seria por que eu procuerei fazer indenticamente ao MARQUEE(é nem tanto assim hehehe)

mas há uma maneira de se fazer isso seria duplicar os objetos

em breve irei por sua sugestão

;)

Link para o comentário
Compartilhar em outros sites

  • 0

Opá cara muito bom bom o seu código parabéns eu estou utlizando ele em site q estou desenvolvendo, mas como eu faço para usar o marquee em uma linha ... As noticias uma do lado da outra ???

Editado por jow
Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia, eu estava querendo fazer com q as noticias ficassem uma do lado da outra, depois de muito tentar resolver isso, não consegui nada, pois não sei quase nada de JS, mas vi q tem um CSS no código q influência no funcionamento, mas também não sei nada de CSS hehehe. Mas eu tinha q fazer de qualquer maneira q as noticias exibissem lado a lado, começei a mexer no código e piorar ele kkkkkkkk, mas de tanto mexer consegui resolver UPI, UPI kkkkkkk ... Só alterei o trecho do CSS

#marquee{
width:400px;
background:#ddd;
}
para
#marquee{
width:2000;
}

, ou seja almentei o tamanho da minha DIV marquee, e veja q não usei background:#ddd;, pois para a minha necessidade não foi necessário ... Abraçossss

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...