Tema: capas
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2010, 10:39
davidmr10
 
Fecha de Ingreso: marzo-2010
Mensajes: 24
Antigüedad: 14 años, 1 mes
Puntos: 0
capas

Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.      "xhtml1-transitional.dtd">
  3. <html>
  4. <head>
  5. <title>Prueba</title>
  6. <style type="text/css">
  7.   /*
  8.    * Capas
  9.    */
  10.    
  11.   /* Contenedor del texto */
  12.   #contenedor {
  13.     width: 340px;
  14.     height: 427px;
  15.     position: relative;
  16.     overflow: hidden;
  17.     font-size: 12px;
  18.     white-space: pre;
  19.   }
  20.  
  21.   /* Contenedor de la miniatura */
  22.   #miniatura {
  23.     font-size: 4px;
  24.     position: absolute;
  25.     top: 4px;
  26.     left: 360px;
  27.     width: 92px;
  28.     cursor: crosshair;
  29.     border: 2px solid #009090;
  30.     white-space: pre;
  31.     background: #999999;
  32.   }
  33.  
  34.   /* Ventanita que muestra que es lo que se está mostrando */
  35.   #ventana {
  36.     position: absolute;
  37.     top: 0px;
  38.     background: #EEEEEE;
  39.     width: 100%;
  40.   }
  41.  
  42.   /* Contenedor del texto de la miniatura */
  43.   #contenedor-texto {
  44.     position: absolute;
  45.     width: 92px;
  46.     z-index: 2;
  47.   }  
  48.  
  49.   /* Capa que evita que se pulse en la miniatura */
  50.   #tapa {
  51.     position: absolute;
  52.     background: url(sp.gif);
  53.     width: 100%;
  54.     height: 100%;
  55.     z-index: 4;
  56.   }
  57.  
  58.   pre {
  59.      font-family: Arial;
  60.     margin: 0px;
  61.   }
  62. </style>
  63. <script type="text/javascript">
  64. //<![CDATA[
  65.   var altoTot = 427;  // Alto de las ventanas
  66.   var altoVtn = 135;  // Alto de la ventanita que
  67.                       // indica que es lo que se muestra
  68.   var anchoTot = 400;  // Ancho de la ventana del texto
  69.   var anchoVtn = 92;  // Ancho de la ventanita que
  70.                       // indica que es lo que se muestra
  71.   var movimiento = false;  // Si se debe mover
  72.   var desp = 0;  // Desplazamiento que hay que
  73.                  // tener en cuenta cuando se
  74.                  // pincha dentro de la ventanita
  75.  
  76.  
  77.   // Devuelve el valor numerico de una
  78.   // propiedad de los estilos (elimina el px)
  79.   function valorCSS(obj, tipo) {
  80.     var aux = eval("parseFloat(obj.style." + tipo +
  81.       ".substring(0,obj.style." + tipo + ".length-2))");
  82.     return aux;
  83.   }
  84.  
  85.   // Empieza o finaliza el movimiento
  86.   // de la ventanita
  87.   function estadoScrolling(evt, obj, ok) {
  88.     movimiento = ok;
  89.  
  90.     // Si hay movimiento, hay que tener
  91.     // en cuenta si se ha pinchado dentro
  92.     // de la ventanita, si es así, se toma
  93.     // la distancia desde el ratón hasta el "top"
  94.     // de la ventanita, para luego sumar esa distancia
  95.     if (ok) {
  96.       var y = evt.layerY? evt.layerY : evt.offsetY; // Diferencias entre IE y Firefox;
  97.       var vtn = document.getElementById("ventana");
  98.      
  99.       if (y < valorCSS(vtn, "top") ||
  100.           y > valorCSS(vtn, "top")+altoVtn) {
  101.         // si se ha pulsado fuera se
  102.         // desplaza a la posición y se
  103.         // toma como desplazamiento = 0
  104.         scrollingCapa(evt, obj);
  105.         desp = 0;
  106.       } else {
  107.         // si se ha pulsado dentro se
  108.         // toma la longitud del desplazamiento
  109.         desp = y - valorCSS(vtn, "top");
  110.       }
  111.     }
  112.   }
  113.  
  114.  
  115.   // Mueve la ventanita según la posición del ratón
  116.   // y desplaza (scrolling) el texto
  117.   function scrollingCapa(evt, obj) {
  118.     if (movimiento) {
  119.       var y = evt.layerY? evt.layerY : evt.offsetY; // Diferencias entre IE y Firefox;
  120.      
  121.       // Ventana que contiene el texto
  122.       var orig = document.getElementById("contenedor");
  123.       // Alto total del contenedor del texto
  124.       var alto = orig.scrollHeight;
  125.  
  126.       // Scrolling del texto
  127.       orig.scrollTop = (alto*(y-desp)/obj.offsetHeight)-10;
  128.  
  129.       // Movimiento de la ventana
  130.       var vtn = document.getElementById("ventana");
  131.       var pos = parseInt(y-desp) > altoTot-altoVtn?
  132.                  altoTot-altoVtn :
  133.                  y-desp-2;
  134.       pos = pos < 0? 0: pos;
  135.       vtn.style.top = pos+"px";
  136.     }
  137.   }
  138.  
  139.  
  140.   // Crea la miniatura segun el texto
  141.   // del contenedor
  142.   function creaMiniatura() {
  143.     // Contenedor del texto
  144.     var orig = document.getElementById("contenedor");
  145.     // Contenedor de la miniatura
  146.     var mini = document.getElementById("miniatura");
  147.    
  148.     // Inicializo la posición del scroll para cuando se haga refresh
  149.     orig.scrollTop = "0px";
  150.     // Se oculta la miniatura hasta que acabe
  151.     mini.style.display = "none";
  152.    
  153.     // La miniatura está formada por 3 capas:
  154.     // 1. la ventanita que indica que se está mostrando
  155.     // 2. el texto
  156.     // 3. una tapadera para evitar que se seleccione el texto
  157.     mini.innerHTML = '<div id="ventana"></div><div id="contenedor-texto">'+orig.innerHTML+'</div><div id="tapa"></div>';
  158.    
  159.     // Inicialización de valores
  160.     mini.style.height = altoTot+"px";
  161.     document.getElementById("contenedor-texto").style.height = altoTot+"px";
  162.     document.getElementById("ventana").style.height = altoVtn+"px";
  163.     document.getElementById("ventana").style.top = "0px";
  164.    
  165.     // Se cogen todas las imagenes (que deben tener su
  166.     // alto y ancho fijados) y se redimensionan para que
  167.     // tengan un tamaño proporcional
  168.     var imgs = mini.getElementsByTagName("IMG");
  169.    
  170.     var alto = orig.scrollHeight;
  171.     var porc = anchoVtn/anchoTot;
  172.    
  173.     for (var i=0; i<imgs.length; i++) {
  174.       imgs[i].style.width = (porc*valorCSS(imgs[i], "width"))+"px";
  175.       imgs[i].style.height = (porc*valorCSS(imgs[i], "height"))+"px";
  176.     }
  177.    
  178.     // Se muestra la miniatura
  179.     mini.style.display = "block";
  180.   }
  181. //]]>  
  182. </script>
  183. </head>
  184. <body onload="creaMiniatura()">
  185. <div id="contenedor"><pre>
  186.  
  187. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  188. <div align="center"><img src="logo_cbtech.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  189. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  190. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  191. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  192. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  193. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  194. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  195. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  196. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  197. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  198. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  199. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  200. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  201. <div align="center"><img src="LOGOWEB2.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  202. <div align="center"><img src="logo_cbtech.jpg" alt="Sentido Web" style="width: 150px; height: 63px "/></div>
  203.  
  204.  
  205. </pre></div>
  206.  
  207. <div id="miniatura" onmousedown="estadoScrolling(event, this, true)" onmouseup="estadoScrolling(event, this, false)" onmousemove="scrollingCapa(event, this)">
  208. </div>
  209. </body>
  210. </html>



este es un codigo muy bueno, pero me gustaria saber como puedo hacer para que el scroll sea de forma horizontal.

ayuda