Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/02/2013, 16:44
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 8 meses
Puntos: 1567
Respuesta: capa con mostrar más

Agrego una variante que no requiere id en las capas que contienen el texto

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Ver ocultar detalles usando previousSibling</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. body{
  9. font-family: arial, sans-serif;
  10. font-size: 11pt;
  11. }
  12. /* propiedades por defecto para las capas que contienen el texto */
  13. .faqs {  
  14. text-overflow: ellipsis;
  15. overflow: hidden;
  16. width: 500px;
  17. white-space: nowrap;
  18. padding: 3px;
  19. background: #DFD2C8;
  20. }
  21.  
  22. .ver{
  23. cursor: pointer;
  24. font-size: 11px;
  25. font-weight: bold;
  26. margin-bottom: 10px;
  27. padding: 3px;
  28. }
  29. /*]]>*/
  30. <script type="text/javascript">
  31. //<![CDATA[
  32. function mostrarOcultar(e){
  33.  
  34. // identificamos el elemento previo al "mostrar detalles" que se clickea, que por supuesto será un div
  35. if(document.all && document.querySelector && !document.addEventListener){
  36. var p = e.previousSibling; // ie8
  37. }else{
  38. var p = e.previousSibling.previousSibling; // ie9, otros
  39. }
  40.  
  41. // tomamos una propiedad css del elemento obtenido previamente para evaluarla
  42. // en este caso el 'overflow', que por defecto nuestra class 'faqs' establece como hidden
  43. var miCapa=p.style.overflow;
  44.  
  45. // ahora, según sea el valor de overflow, invertimos el resto de las propiedades css y el texto a mostrar en el elemento (e) al que se hizo click
  46. if(miCapa=="auto"){
  47. p.style.overflow="hidden";
  48. p.style.whiteSpace = 'nowrap';
  49. e.innerHTML = 'ver detalles';
  50. }else{
  51. p.style.overflow="auto";
  52. p.style.whiteSpace = 'normal';
  53. e.innerHTML = 'ocultar detalles';
  54. }
  55. }
  56. //]]>
  57. </head>
  58. <div class="faqs">
  59. Lorem ipsum dolor sit  amet, consectetur adipiscing elit.  Aenean euismod vestibulum elit  non condimentum. Pellentesque
  60. vitae adipiscing sem. Phasellus velit enim, consequat id pharetra id, adipiscing in turpis
  61. </div>
  62. <div onclick="mostrarOcultar(this)" class="ver">ver detalles</div>
  63. <div class="faqs">
  64. Vestibulum lacus diam, pellentesque in faucibus eget, dapibus sed sem. Integer id justo id tortor varius tempus. Aliquam
  65. dui tellus, consequat sed molestie in, facilisis eget nisi.
  66. </div>
  67. <div onclick="mostrarOcultar(this)" class="ver">ver detalles</div>
  68. </body>
  69. </html>

Demo
http://foros.emprear.com/javascript/...ssibling.phtml

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.