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

(Resolvido) Dúvida - Funções/Propriedades do "getElementById&quot


Guest TDT

Pergunta

Olá pessoal tudo bom?

Eu estou fazendo um site de notícias/entrevistas. Estas notícias/entrevistas serão salvas em um banco de dados, obviamente e posteriormente exibidas.

O problema está justamente aí.

O meu cliente não quer a barra de rolagem alguma no site, e o único espaço que eu tenho para por a notícia é um <div> com, por exemplo 25 linhas.

Logo quando a notícia/entrevista for grande, por exemplo 50 linhas, eu precisarei de 2 <div>.

A pergunta é: Existe possibilidade de saber quantas linhas de texto tem no <div> ? E então imprimir as 25 primeiras no primeiro <div> e as 25 restantes no segundo <div>

OBS: Vale lembrar que eu posso mudar a LARGURA/ALTURA desse <div> atingindo diretamente o número de linhas que ele passará a ter a partir de então.

Resumindo, o que eu estou procurando é algo como:

var mydiv = document.getElementById("mydiv");
var qtd = mydiv.getMaxLines(); //obviamente não existe

if ((qtd > 25) && (qtd < 50)) {
  var parte1 = mydiv.getLines(1,25); //da 1ª a 25ª, tb n existe
  var parte2 = mydiv.getLines(26); //da 26ª em diante, tb n existe
}

document.getElementById("div1").innerHTML = parte1;
document.getElementById("div2").innerHTML = parte2;

Onde mydiv é um <div> oculto onde eu salvei o resultado que veio do banco de dados. E div1 e div2 são os <div> que serão exibidos a notícia.

Bom, depois de complicar a cabeça de vocês (XD) .. será que existe alguma maneira de fazer isso?

Agradeço desde já a colaboração de todos vocês!

=]

Obrigado!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Não seria a solução perfeita, mas talvez possa ser utilizada (a depender de como o texto foi salvo)

Você tentaria pegar o código e utilizar a função "InStr(1, conteudo_bd, vbCrlf)"

Assim, você encontraria as quebras de linha e utilizaria um loop até que o contador fosse 25

Quando o contador fosse 25, você iria criar uma nova DIV

Obs.:

Deve ter outra forma de fazer melhor que essa, já que assim o programa só lê as quebras de linha contidas no arquivo, não contando também as que seriam geradas automaticamente pelo HTML (de acordo com a largura do campo)

Funcionaria para entrevistas, onde os textos de cada linha são curtos

Mesmo assim, pesquisarei outra maneira de fazê-lo

Se achar, posto aqui

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, este modo eu conheço.

Mas não me serviria, justamente pelo que você falou.

Eu preciso saber as quebras de linha geradas pelo HTML e não as geradas na entrada de texto do usuário (ao cadastrar no banco).

Uma alternativa seria usar uma fonte monoespaçada, como Courier New, Fixedsys, Terminal, entre outras.

Dai eu poderia limitar a quantidade de caracteres em X, e pegar até um espaço (chr(32)) antes do último (para não cortar) e forçar uma justificação adicionando mais espaços.

O problema é que esses tipos de fontes são muito feios para um site deste porte, então estou tentando outra saída.

Mas obrigado até agora, continuo no aguardo!

:)

Link para o comentário
Compartilhar em outros sites

  • 0

Salve, salve! \o/

hieIHEHIeHIEHIeihhie :D

Após muitas horas Googleando.. :P lendo o MSDN e várias propriedades e métodos DOM... consegui realizar essa façanha! :D

Hospedei o exemplo no meu site para não sujar o post com um código imennnso :)

Lá estão as explicações de como utilizar e o código fonte bem limpinho.

O endereço é http://www.mytdt.com.br/colunas.htm

Foi preciso juntar muitos pauzinhos e conceitos pra conseguir hehehe :P

Obrigado pela ajuda de todos e aproveitem o código!

Qualquer melhora, postem aqui ^^"

Link para o comentário
Compartilhar em outros sites

  • 0

Só encontrei um erro lá

Quanto você "seta" novamente o texto e clica para aparrecerem as div's, o texto que havia anteriormente continuar lá

Por exemplo, se tinha duas div's: uma escrito "xx.x.x.x.x..x..x.x.x.x.........x" e a outra escrita "yyy.y.y..y.y.y.y.y...y", quando escrevo "teste" na caixa de texto e mando "setar" novamente a primeira div fica escrito "teste" e a segunda com o valor "yyy.y.y..y.y.y.y.y...y"

Mas isso é fácil de resolver

É só zerar as divs quando o usuário clicar "setar" e depois preencher de novo com os valores

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...