Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
Mostrar el botón "leer más" después de un número específico de líneas con JS

Quiero que mis párrafos tengan 3 líneas como máximo. Si va más allá de eso, muestro un botón "leer más".

ingrese la descripción de la imagen aquí

El botón "leer más" debe estar oculto para la primera publicación.

Sé cómo limitar los párrafos usando CSS, pero tengo problemas para mostrar/ocultar el botón "leer más".

 // CSS code to limit paragraphs to 3 lines: .post-p { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; /* number of lines to show */ -webkit-box-orient: vertical; line-height: 16px; /* fallback */ max-height: 48px; /* fallback */ }

Estoy tratando de usar la función .height() de jQuery para acceder a la altura del párrafo, pero siempre imprime '16', que supongo que es la altura de línea que configuré en el código CSS anterior. ¿Hay otra forma de verificar la altura o el número de líneas de un párrafo?

Nota adicional: estoy usando EJS para enviar una serie de objetos de publicación desde mi archivo app.js.

 <% posts.forEach(function(post) { %> <div> <p class="post-p"><%= post.content %></p> <a class="read-more-btn" href="/posts/<%=post._id%>">Read More...</a> <script type="text/javascript"> console.log($('.post-p').height()); </script> </div> <% }); %> // Extra note: I removed the h1 tag from the image I linked to simplify the code.
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Tenga en cuenta que line-clamp aún no tiene una gran compatibilidad con todos los navegadores (consulte https://caniuse.com/?search=line-clamp ). Puede que sea mejor que cree los puntos suspensivos usted mismo.

Puede obtener la altura en píxeles de un elemento usando esto:

 var clientHeight = document.getElementById('my-element').clientHeight;
about 4 years ago · Juan Pablo Isaza Relatório

0

Editar: funcionó gracias a @Alexander van Oostenrijk. Aquí está mi solución a continuación.

 <% posts.forEach(function(post) { %> <div class="post-div"> <h1><a href="/posts/<%=post._id%>"><%= post.title %></a></h1> <p class="post-p"><%= post.content %></p> <a class="read-more-btn" href="/posts/<%=post._id%>">Read More...</a> </div> <% }); %> <script type="text/javascript"> $('.post-div').each(function(i, obj) { if (obj.children[1].clientHeight < 48) { // post-p $(obj.children[2]).hide(); // read-more-btn } }); </script>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda