Ir para conteúdo
Fórum Script Brasil

Henderson

Membros
  • Total de itens

    362
  • Registro em

  • Última visita

Posts postados por Henderson

  1. Fala galera,

    Seguinte, to com um sistema de chat e que tá atualizando o texto do chat usando setInterval.

    Tá de 1 em 1 segundo, final, é um chat, tem que ser rápido o negócio.

    Mas é MUITA requisição no servidor. Ainda mais que tem um "O usuário está digitando"

    Não é possível que só possa ser feito assim. Eu abro o painel do desenvolvedor no chrome e vejo lá, aquele monte de requisição.

    Eu entrei em sites como o www.omegle.com, na versão Text (só pra vces entrarem se quiserem ver do que estou falando) e lá não tem esse monte de requisição, somente uma requisição quando uma digitação é iniciada e outra requisição quando a mensagem é enviada ou recebida.

    Como fazer para que seja desse jeito?

    O servidor, e pelo jeito até o navegador, não dá conta direito de tanta requisição. Sem contar que a página fica sempre "carregando".

    Abraço.

  2. Olá.

    Estou tentando definir algumas dimensões, de modo que a página ocupe a página inteira.

    Coloquei uma figura aqui em anexo pra explicar, o HTML+CSS segue abaixo.

    As áreas vermelhas tem tamanho fixo (largura e altura em px)

    As áreas verdes, eu quero que adaptem suas dimensões de forma que toda a janela do browser, não importe o tamanho, fique preenchida.

    A verde de cima tem largura 100% e altura que deve se ajustar.

    A verde de baixo tem altura fixa e largura que deve se ajustar, sem sobrepor a vermelha à direita e sem deixar espaço em branco.

    Tenderam?

    Não to conseguindo fazer esse ajuste com o html e css que montei.

    Alguém pode me dar uma luz?

    layk.th.jpg

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <style type="text/css">
    html, body {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
    }
    .class-you {
        color:#3895BF;
        font-weight:bold;
    }
    .class-partner {
        color:#2E900D;
        font-weight:bold;
    }
    #container {
        width: 100%;
        height: 100%;
    }
    #content {    
        width: 100%;
        height: 100%;
    }
    #topbar {
        padding-top: 10px;
        height: 50px;
        width: 100%;
    }
    #buttons {
        padding-bottom:5px;
        width:170px;
        float:left;
    }
    .buttonFont {
        font-size:10px;
    }
    #info {
        font-family:Verdana, Geneva, sans-serif;
        font-size:12px;
        float:left;
        padding-top:5px;
    }
    .label {
        font-family:Verdana, Geneva, sans-serif;
        font-size:11px;
        color:#3895BF;
    }
    #externalPanel {
        clear:both;
        margin: 0 5px 0 5px;
        height:70%;
        width:99%;
    }
    #panel {
        overflow:auto;
        padding:3px;
        font-family:Verdana, Geneva, sans-serif;
        font-size:12px;
        height: 100%;
        width: 100%;
    }
    #typing {
        padding-top: 5px;
        margin-left: 4px;
        width: 95%;
        height: 25px;
        clear: both;
    }
    #sendMessage {
        padding-top:5px;
        margin-left:0px;
        width: 100%;
        height: 62px;
    }
    #message {
        float: left;
        width: 89%;
        height: 60px;
    }
    #submit {
        float: right;
        font-size:13px;
        width: 10%;
        height: 62px;
    }
    #ads {
        clear: both;
        margin-top: 10px;    
        height: 90px;
        width: 100%;
    }
    </style>
    </head>
    <body>
    <div id="container">
    <div id="content">
    <div id="topbar">
        <div id="buttons" class="buttonFont">
            <input type="button" id="logout" name="logout" value="close" />
            <input type="button" id="status" name="status" value="searching..." />    
        </div>
        <div id="info">
        you are a ...
        </div>
    </div>
    <div id="externalPanel" class="ui-corner-all ui-widget-content">
        <div id="panel">
        </div>
    </div>
    <div id="typing"></div>
    <div id="sendMessage">
        <div id="messageBox">
            <textarea id="message" name="message" class="ui-corner-all ui-widget-content"></textarea>
        </div>
        <div id="submitBox">
            <input type="button" id="submit" value="send" />
        </div>
    </div>
    <div id="ads">
    </div>
    </div>
    </div>
    </body>
    </html>

    Valeu!!

  3. sei, sei como é cara

    eu também faço assim

    mas to tentando seguir o padrão do site

    e aí procurando a solução que vai me fazer seguir esse padrão

    não ficar colocando javascript no meio do código html

    e aí, usar a jQuery porque me facilita usar esse tal de javascript não obstrusivo, qe tá na moda e que os clientes que alguma coisa entendem fazem questão de pedir

    eu sei as soluções padrões, tanto que tinha essa página pronta e funcionando exatamente como eu quero

    mas, cliente pede, empregado faz, ou tenta..

    e cá to eu, tentando aprender o jeito mais difícil, huaeihaei

  4. de qlqr forma, fazendo assim, o efeito vai ser somente no link

    eu quero qe seja na div com classe listPai inteira..

    qual outra forma de fazer isso?

    to quase colocando um onclick na div mais externa, com a classe listPai.. qe é o qe eu quero..

    mas queria fazer com jquery pra usar javascript não obstrusivo já qe meu site inteiro tá assim

    mas tá me dando um trabalho descobrir um jeito de fazer esse aí

    qe oiutro jeito de fazer você diz?

    diga, dependendo do qe for, eu adapto meu código

  5. Ae galera, beleza?

    seguinte..

    to listando dados do banco de dados.. são arquivos pra download

    os dados são o seguinte

    titulo, foto e descrição

    então tenho 3 divs.. uma pra cada item

    quero que o usuário ao passar o mouse por algum arquivo, todos os dados dele (foto, descrição e titulo) fiquem com um fundo cinza

    ok, até aí tudo bem, então fiz a seguinte estrutura html

    <div class="listPai">
    <div class="listTitulo"><a href="linkDinamico">Título</a></div>
    <div class="listFoto"></div>
    <div class="listDesc"></div>
    </div>
    e aí fiz esse js
    $(document).ready(function() {
        $("#listaArquivos > div").hover(function() {
        $(this).addClass("listHover");
        }, function() {
        $(this).removeClass("listHover");
        });
    });

    mas, eu quero também, qe além disso, quando o usuário clicar, ele vá pro link certo daqele determinado arquivo.. quero que tudo seja um link e não somente o titulo

    antes eu tava fazendo isso tudo com table.. aí eu colocava o onclick na table, e mandava pro link, mas pra isso usava js obstrusivo

    alguém tem alguma idéia de como eu possa fazer isso?!

    de uma forma certa e organizada?

  6. você quer que o teu site envie o email pela página?

    pra isso você teria que usar alguma linguagem como ASP ou PHP.

    ou procurar pela internet se existe algum site que ofereça serviço de Formmail..

    quanto ao botão de ação, você faz assim

    <input type="submit" value="Enviar">

  7. como já foi dito, você põe os códigos que te passei entre as tags head..

    as imagens que você quer que tenham o efeito, você faz o seguinte

    você tem a imagem

    <img src="urldaimagem.jpg">

    então você transforma ela num link

    <a href="urldaimagem.jpg"><img src="urldaimagem.jpg"></a>

    e adiciona o atributo rel, ficando assim

    <a href="urldaimagem.jpg" rel="lightbox" ><img src="urldaimagem.jpg"></a>

    como também já foi te dito

    não é difícil cara, preste atenção no qe tá sendo falado pra ti que você consegue!

  8. cara, é o seguinte..

    você vai querer colocar esses efeitos em uma página sua já existente, certo?

    portanto, suponhamos que essa página seja "imagens.html"

    o que você vai fazer é abrir a imagens.html e colocar os códigos como o Rico falou, entre as tags <head> e </head> do seu código

    depois, você coloca os arquivos na mesma pasta, no seu servidor

    esses arquivos, são referenciados pelo código que o Rico passou

    então, você tem qe respeitar a hierarquia de pastas, então vai ficar assim

    imagens.html em algum lugar do seu site

    nesse mesmo lugar vão ter duas pastas, "js" e "css"

    na pasta js, os seguintes arquivos

    prototype.js

    js/scriptaculous.js

    js/lightbox.js

    na pasta css o arquivo

    lightbox.css

    tem mais arquivos no lightbox? não me lembro, mas creio que não

    é isso, é simples, você só tem que respeitar a hierarquia das pastas

    quando você baixa o lightbox elas já vem na ordem certa, é só mandar pro server, pro mesmo local onde tá o arquivo que você quer aplicar os efeitos e pronto

  9. Olá..

    é o seguinte.. to fazendo um menu dropdown aqui.. vertical, com vários níveis

    tá tudo funcionando certinho..

    o problema é o seguinte..

    eu passo o mouse em cima de um item, ele abre um submenu a direita, certo?

    se esse submenu qe abriu a direita, ficar sobre algum link, qe já tinha na página.. quando eu passo o mouse sobre ele, ele some.. isso só no internet explorer

    é meio complicado de explicar.. vou colocar meu código e uns printscreens pra mostrar

    html do menu

    .
    .
    .
    <td id="menuLateral">
    <ul id="nav">
    <li><a href="#">Item 1</a></li> 
    <li><a href="#">Item 2</a> 
        <ul> 
        <li><a href="#">Item 2.1</a>
                <ul>
                <li><a href="#">Item 2.1.1 </a>
                    <ul>
                    <li><a href="#">Item 2.1.1.1</a></li>
                    <li><a href="#">Item 2.1.1.2</a></li>
                    </ul>
            </li>
                <li><a href="#">Item 2.1.2</a></li>
                </ul>
        </li> 
        <li><a href="#">Item 2.2</a></li> 
        <li><a href="#">Item 2.3</a></li> 
        </ul> 
    </li>
    <li><a href="#">Item 3</a> 
        <ul> 
        <li><a href="#">Item 3.1</a></li> 
        <li><a href="#">Item 3.2</a></li> 
        </ul> 
    </li>
    <li><a href="#">Item 4</a> </li> 
    </ul>
    </td>
    .
    .
    .
    css
    /* CSS Document */
    #menuLateral ul {
    margin: 0;
    padding: 14px 0 0 0px;
    margin-left:12px;
    list-style: none;
    width: 150px;
    border-bottom: 1px solid #ccc;
    }
    
    #menuLateral ul li {
    position: relative;
    text-align:left;
    }
        
    #menuLateral li ul {
    position: absolute;
    left: 137px;
    top: -14px;
    }
    
    #menuLateral ul li a {
    display: block;
    text-decoration: none;
    color: #777;
    background: #fff;
    padding: 5px;
    border: 1px solid #ccc;
    border-bottom: 0;
    }
    
    #menuLateral ul li a:hover {
    background:#000;
    }
    /*************************/    
    #menuLateral li ul {
    display: none;
    }
    
    #menuLateral li:hover ul { 
    display: block; 
    }
    
    #menuLateral li:hover ul ul {
    display:none;
    }
    
    #menuLateral li li:hover ul {
    display:block;
    }
    
    #menuLateral li li:hover ul ul {
    display:none;
    }
    
    #menuLateral li li li:hover ul {
    display:block;
    }
    /**/
    
        
    /* Fix IE. Hide from IE Mac \*/
    * html ul li { 
    float: left; 
    height: 1%; 
    }
    * html ul li a { 
    height: 1%; 
    }
    /* End */
    javascript
    // JavaScript Document
    startList = function() {
    if (document.all&&document.getElementById) {
    navRoot = document.getElementById("nav");
    for (i=0; i<navRoot.childNodes.length; i++) {
    node = navRoot.childNodes[i];
    if (node.nodeName=="LI") {
    node.onmouseover=function() {
    this.className+=" over";
      }
      node.onmouseout=function() {
      this.className=this.className.replace
        (" over", "");
       }
       }
      }
     }
    }
    window.onload=startList;

    Agora o problema..

    O menu tá inserido nessa página

    13452242lf5.th.jpg

    o testo "Cadastre-se" é um link

    O menu funciona corretamente, mas, se algum submenu abrir sobre o link, como nessa imagem

    36499107nf2.th.jpg

    quando eu passo o mouse por cima do item 2.1 no internet explorer, todos os submenus escondem..

    se a lista de submenus for muito cumprida, e chegar até aqela barra preta qe tem no rodapé da imagem, qe também são links.. o mesmo acontece.. todo o menu some quando eu passo o mouse por aqela região, mesmo qe por cima do submenu

    alguém sabe o qe fazer? não sei se consegui ser muito claro!

  10. olá..

    to tentando fazer uma coisa relativamente simples..

    tenho uma página, index.php

    ela tem um include, qe é feito pelo php, simples

    include "det.musica.php"

    essa página det.musica.php tem um link "Comentários"

    que chama a função showComent() do javascript

    a função showComent() é a seguinte

    function getHTTPObject() {

    var xmlhttp;

    /*@cc_on

    @if (@_jscript_version >= 5)

    try {

    xmlhttp= new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

    try {

    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

    } catch (e) {

    xmlhttp = false;

    }

    }

    @else

    xmlhttp = false;

    @end @*/

    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {

    xmlhttp = new XMLHttpRequest();

    } catch (e) {

    xmlhttp = false;

    }

    }

    return xmlhttp;

    }

    var http = getHTTPObject();

    function showComent() {

    document.getElementById("comentDiv").innerHTML = "";

    http.open("GET", "coment.php?id=<?php echo $id; ?>&t=<?php echo $t; ?>", true);

    http.onreadystatechange = showHTML;

    http.send(null);

    }

    function showHTML() {

    if (http.readyState == 4)

    document.getElementById("comentDiv").innerHTML = http.responseText;

    }

    a página index.php tem o seguinte charset

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    a página coment.php, apesar de nem ter as tags html, body e head.. eu coloquei o charset pra ver se funcionava.. coloqei o seguinte

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    a página det.musica.php nem tem charset, porque ela também não tem as tags html, body e head..

    a página pai é a index.php, as outras páginas apenas completam ela..

    o problema é que..

    o conteúdo que é gerado pela página coment.php que tem acento, não funciona, fica com "?" no lugar..

    se eu pegar a pagina coment.php e simplesmente der um include pelo php, os acentos aparecem normalmente..

    mas quando ela vem pelo javascript, os acentos não funcionam

    o que eu faço?

  11. olá.. é o seguinte..

    to programando um site.. onde se exibe miniaturas de imagens.. e quando clica na miniatura, qero qe abra as imagens ampliadas..

    só qe pra fazer isso, qero qe apareça um fundo, mais escuro sobre todo o site.. e aí uma div branca no centro, com a foto dentro!

    tudo funciona certinho.. menos a div de fundo..

    ela não tá ficando do tamanho do site e eu não sei o qe fazer..

    o css dela tá assim

    #fundo {
        background-color:#000000;
        height:100%;
        width:100%;
        opacity:0.85;
        -moz-opacity: 0.85;
        filter: alpha(opacity=85);
        position:absolute;
        z-index:1;
        left:0px;
        top:0px;
    }

    só qe desse jeito, ela fica do tamanho da janela do site..

    quando rola a página pra baixo.. ela não aparece

    tirei dois printscreen pra mostrar..

    qe eu faço?

    30344589fl5.th.jpgthpix.gif

    73443365ze2.th.jpgthpix.gif

  12. aqui eu instalei tudo e tal, uso esse código pra mandar um email, só pra testar

    <?
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "To: hrmele@gmail.com <Teste de Envio>\r\n";
    $headers .= "From: contato@fuxiqueiro.com\r\n";
    $headers .= "Return-Path: contato@fuxiqueiro.com\r\n";
    $headers .= "Reply-To: contato@fuxiqueiro.com\r\n";
    $sent = mail("hrmele@gmail.com","teste","teste",$headers);
    if ($sent)
    echo "foi";
    else
    echo "erro";
    ?>

    mas não vai.. aparece na tela FOI, mas não recebo o email..

    tentei mandar pro hotmail, gmail, terra, nada..

    nem na caixa de spam

    alguém sabe o qe pode tá errado? segui o qe o cara falo lá em cima

  13. me responderam isso em outro tópico

    Não olhei o script inteiro, mas tá faltando um onreadystatechange quando você abre a requisição. Ele verifica os ready states e executaria um callback quando estivesse tudo pronto. Creio que esse deva ser o problema. Isso é no seu ajax(), mais precisamente no enviar(). Você pode usar:

    this.xmlhttp.onreadystatechange = processa

    mas onde eu coloco isso?

  14. ae galera..

    montei uma parada aqui pra poder quando um cara preencher um formulário, verificar se o email que ele preencheu já tá cadastrado no bd..

    eu não sei muito de ajax, então eu não sei se o código que to usando tá certo... já usei ele em outros scripts, só copiei e colei.. eu até compreendo o que ele faz, mas não SEI de verdade..

    o problema é que no firefox funciona certinho, mas no internet explorer dá esse erro

    Os dados necessários para concluir esta operação ainda não estão disponíveis.

    aqui o código do ajax

    function ajax() {
    };
    ajax.prototype.iniciar = function() {
    
        try{
            this.xmlhttp = new XMLHttpRequest();
        }catch(ee){
            try{
                this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(E){
                    this.xmlhttp = false;
                }
            }
        }
        return true;
    }
    
    ajax.prototype.ocupado = function() {
        estadoAtual = this.xmlhttp.readyState;
        return (estadoAtual && (estadoAtual < 4));
    }
    
    ajax.prototype.processa = function() {
        if (this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200) {
            return true;
        }
    }
    
    ajax.prototype.enviar = function(url, metodo, modo) {
        if (!this.xmlhttp) {
            this.iniciar();
        }
        if (!this.ocupado()) {
            if(metodo == "GET") {
                this.xmlhttp.open("GET", url, modo);
                this.xmlhttp.send(null);
            } else {        
                this.xmlhttp.open("POST", url, modo);
                this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
                this.xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
                this.xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
                this.xmlhttp.setRequestHeader("Pragma", "no-cache");
                this.xmlhttp.send(url);
            }    
    
            if (this.processa) {
                return unescape(this.xmlhttp.responseText.replace(/\+/g," "));
            }
        }
        return false;
    }
    aqui a função que verifica se o email tá cadastrado
    function verificaCadastro(email) {
    remoto  = new ajax();
    existe = remoto.enviar("ajax/abrir.php" + "?email=" + email,"GET","");
        if (existe) {
        altClass("email","inputErro");
        altImagem("imgEmail","erro");
        altMsg("erroEmail","Email j&aacute; cadastrado");
        return true;
        } else {
        altClass("email","inputCerto");
        altImagem("imgEmail","certo");
        altMsg("erroEmail","");
        return false;
        }
    }
    a página abrir.php retorna só true ou false. alguém sab o que tá errado? qe qe eu faço? aah.. eu chamo a função assim
    <input type="text" name="email" id="email" class="input" maxlength="50" onblur="verificaEmail(this.value);" />
    a função verificaEmail é essa
    function verificaEmail(email) {
    cadastro = verificaCadastro(email);
        if (cadastro)
        return false;
        if (email == "") {
        altClass("email","inputErro");
        altImagem("imgEmail","erro");
        altMsg("erroEmail","Email em branco");
        return false;
        }
    var er = new RegExp (/^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]*)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/);
        if (er.test(email)) {    
        altClass("email","inputCerto");
        altImagem("imgEmail","certo");
        altMsg("erroEmail","");
        } else {
        altClass("email","inputErro");
        altImagem("imgEmail","erro");
        altMsg("erroEmail","Email inv&aacute;lido");
        }
    }

    vlw!

×
×
  • Criar Novo...