Foros del Web » Programando para Internet » Javascript »

Crear un link "mostrar menos" para ocultar texto

Estas en el tema de Crear un link "mostrar menos" para ocultar texto en el foro de Javascript en Foros del Web. Hola a tod@s Estoy utilizando Prestashop, y dentro de la página de "fabricante" tengo la opción de añadir una descripción. Estas descripciones que añado a ...
  #1 (permalink)  
Antiguo 25/10/2016, 11:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 227
Antigüedad: 14 años, 2 meses
Puntos: 4
Crear un link "mostrar menos" para ocultar texto

Hola a tod@s

Estoy utilizando Prestashop, y dentro de la página de "fabricante" tengo la opción de añadir una descripción. Estas descripciones que añado a veces son bastante largas y el tema muestra un link con la palabra "mas" y al clickar sobre ella te muestra todo el texto.

Pues bien, ahora lo que quiero es cuando está totalmente desplegado el texto, muestra un link con la palabra "Menos" para que este pueda volver a su posición resumida inicial.

Entiendo que esto lo tengo que hacer en manufacture.tpl y utilizando Javascipt pero honestamente no tengo ni idea como.

Alguien podría echarme un mano??

Muchas gracias!!

El código de ese archivo es
Código:
{include file="$tpl_dir./errors.tpl"}

{if !isset($errors) OR !sizeof($errors)}
	<h1 class="page-heading product-listing">
		{l s='List of products by manufacturer'}&nbsp;{$manufacturer->name|escape:'html':'UTF-8'}
	</h1>
	{if !empty($manufacturer->description) || !empty($manufacturer->short_description)}
		<div class="description_box rte">
			{if !empty($manufacturer->short_description)}
				<div class="short_desc">
					{$manufacturer->short_description}
				</div>
				<div class="hide_desc">
					{$manufacturer->description}
				</div>
				<a href="#" class="lnk_more" onclick="$(this).prev().slideDown('slow'); $(this).hide();$(this).prev().prev().hide(); return false;" title="{l s='More'}">
					{l s='More'}
				</a>
			{else}
				<div>
					{$manufacturer->description}
				</div>
			{/if}
		</div>
	{/if}

	{if $products}
		<div class="content_sortPagiBar">
	    	<div class="sortPagiBar clearfix">
				{include file="./product-sort.tpl"}
				{include file="./nbr-product-page.tpl"}
			</div>
	    	<div class="top-pagination-content clearfix">
	        	{include file="./product-compare.tpl"}
	            {include file="$tpl_dir./pagination.tpl" no_follow=1}
	        </div>
		</div>

		{include file="./product-list.tpl" products=$products}

		<div class="content_sortPagiBar">
	        <div class="bottom-pagination-content clearfix">
	        	{include file="./product-compare.tpl"}
				{include file="./pagination.tpl" no_follow=1 paginationId='bottom'}
	        </div>
		</div>
	{else}
		<p class="alert alert-warning">{l s='No products for this manufacturer.'}</p>
	{/if} 
{/if}
__________________
Devivencias | psicologia online
  #2 (permalink)  
Antiguo 25/10/2016, 16:52
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 9 años, 5 meses
Puntos: 91
Respuesta: Crear un link "mostrar menos" para ocultar texto

Aqui habia hecho una demo, fijate si es lo que quieres ;)

https://codepen.io/AngelKrak/pen/yJkZvX
  #3 (permalink)  
Antiguo 01/11/2016, 13:52
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Crear un link "mostrar menos" para ocultar texto

Cambia esto
Código HTML:
Ver original
  1. <div class="short_desc">
  2.                     {$manufacturer->short_description}
  3.                 </div>
  4.                 <div class="hide_desc">
  5.                     {$manufacturer->description}
  6.                 </div>
  7.                 <a href="#" class="lnk_more" onclick="$(this).prev().slideDown('slow'); $(this).hide();$(this).prev().prev().hide(); return false;" title="{l s='More'}">
  8.                     {l s='More'}
  9.                 </a>

Por
Código HTML:
Ver original
  1. <div id="div_short_desc" class="short_desc">
  2.                     {$manufacturer->short_description}
  3.                 </div>
  4.                 <div id="div_desc" class="hide_desc">
  5.                     {$manufacturer->description}
  6.                 </div>
  7. <a id="link_desc" href="#" class="lnk_more" title="{l s='More'}" data-title="{l s='Less'}">{l s='More'}</a>
  8. $('#link_desc').on('click', function(){
  9.     $('#div_short_desc').toggleClass('hide_desc');
  10.     $('#div_desc').toggleClass('hide_desc');
  11.     var title= $(this).attr('title');
  12.     var data = $(this).attr('data-title');
  13.     $(this).attr('title', data ).text(data).attr('data-title', title);
  14.     return false;
  15. });

Y traduce ese 'Less' en el fichero de traducciones.

Etiquetas: html, link, menos, text
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:17.