Ver Mensaje Individual
  #28 (permalink)  
Antiguo 12/01/2011, 10:50
erfrancis
 
Fecha de Ingreso: noviembre-2010
Mensajes: 58
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer para que un ancla no sea leida desde la parte mas superior

isabelM si puede ser que el codigo que me pasaste funcione, yo te dije que no funciona porque no me fije creo en el error. mira el codigo:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <script type="text/javascript">
  4. function posicionabsoluta(element) {
  5. if (typeof element == "string")
  6. element = document.getElementById(element)
  7.  
  8. if (!element) return { top:0,left:0 };
  9. var y = 0;
  10. var x = 0;
  11. while (element.offsetParent) {
  12. x += element.offsetLeft;
  13. y += element.offsetTop;
  14. element = element.offsetParent;
  15. }
  16. return {top:y,left:x};
  17. }
  18.  
  19.  
  20. function buscar(ancla) {
  21. document.getElementById('cargando').style.display = 'none';
  22. var tag = ancla.buscaancla.value;
  23. var elemento = document.getElementById(tag);
  24. var pos = posicionabsoluta(elemento)
  25. document.location.href = '#' + tag;
  26. window.scrollTo(parseInt(pos.left-10), parseInt(pos.top-80));
  27. }
  28.  
  29.  
  30. function fnc(ancla) {
  31. document.getElementById('cargando').style.display = 'block';
  32. var tmo = setTimeout(function(){buscar(ancla);}, 2000);
  33. }
  34. <style type="text/css">
  35. #header {
  36. position:fixed;
  37. }
  38.  
  39. #cont {
  40. position:absolute;
  41. background:#FFCCFF;
  42. width: 50000px;
  43. height: 50000px;
  44. left:1px;
  45. top: 100px;
  46. }
  47.  
  48. #cargando{
  49. display: none;
  50. background-color: yellow;
  51. float: left;
  52. }
  53.  
  54.  
  55. #1 {
  56. position:absolute;
  57. width:100px;
  58. height:100px;
  59. top: 2000px;
  60. left: 200px;
  61. }
  62.  
  63. #a2 {
  64. width:700px;
  65. }
  66. </style>
  67. </head>
  68. <div id="header">
  69. <form name="anclaje">
  70. <input type="text" value="a1" name="buscaancla" />
  71. <input type="button" value="buscar" onclick="fnc(this.form);" />
  72. <span id="cargando">cargando..</span>
  73. </form>
  74. </div>
  75.  
  76. <div id="cont">
  77. <a name="1"></a>
  78. <div id="1">
  79. ancla
  80. </div>
  81.  
  82. </div>
  83. </body>
  84. </html>

Pruebalo ya veras como no funciona.
A lo que voy y por lo que creo que no funciona es porque en este caso, las anclas leen ya directamente el id del div, y ese es el problema, que para mi pagina lo que se va a poner en el buscador es un numero tal caul, de ahí a lo necesario de usar la etiqueta name porque ahí si va un numero tal cual, y luego que el div que no lo leyera (con el script que te pase si que el lee el name por un lado, y el div por otro, pero en este que me has pasado no lo lee el name por eso te dije que no funcionaba, pero si que funciona en realidad, solo que usaba name y no el id del div para el ancla),pense en probar lo siguiente pero el problema esta aqui en que si al id del div le pongo de nombre un numero solo pues el css de ese div ya no lo reconoce, si a un div id le pongo el 1, ya no reconoce el css (todos los id tienen que empezar por un caracter no?), para eso tendria q poner "a1" como por ejemplo pones tu. El caso es ese,
¿como hago para que lea el name solo y el div pueda tener un nombre como foto1 con el codigo que tu me has pasado como me hace a mi con el mio?

Prueba este codigo que te acabo de pasar y veras como no funciona y ya me dices, por eso era lo de modificar el script que te pase. gracias ;)

Última edición por erfrancis; 12/01/2011 a las 12:14