Foros del Web » Creando para Internet » HTML »

evitar este comportamiento(no se explicarlo...)

Estas en el tema de evitar este comportamiento(no se explicarlo...) en el foro de HTML en Foros del Web. Bien al clickear en enlaces mi pagina tiende a rebotar hacia la parte superior de la pantalla, es decir hace este efecto: www.adosinformatica.com/cast/servicios.html en la ...
  #1 (permalink)  
Antiguo 29/04/2006, 10:46
 
Fecha de Ingreso: marzo-2006
Mensajes: 230
Antigüedad: 11 años, 8 meses
Puntos: 2
evitar este comportamiento(no se explicarlo...)

Bien al clickear en enlaces mi pagina tiende a rebotar hacia la parte superior de la pantalla, es decir hace este efecto:

www.adosinformatica.com/cast/servicios.html

en la parte de redes y comunicaciones al pinchar en los enlaces de abajo es cuando me salen...

gracias
  #2 (permalink)  
Antiguo 29/04/2006, 16:02
Avatar de webosiris
Moderador egiptólogo
 
Fecha de Ingreso: febrero-2002
Ubicación: Luxor, Egipto
Mensajes: 10.727
Antigüedad: 15 años, 10 meses
Puntos: 997
eliminá los enlaces... ¿para que tenés enlaces que no llevan a ningún lado?
__________________
Pasamos tus PSD a HTML

Pobre del que lo sabe todo, porque no tiene nada más que aprender ni razón para vivir. -
  #3 (permalink)  
Antiguo 29/04/2006, 16:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 128
Antigüedad: 13 años, 1 mes
Puntos: 2
porque lo que estas haciendo no solo es molesto para el usuario sino la tonteria, el error mas grande que aun aqui en el foro personas con grandes habilidades cometen

esto href="#" esta mal

la funcion de href="#algo" es ir a algun lugar de la pagina definida con <a name="algo">

<a href="#">Esto es incorrecto</a>

desgraciadamente por todas partes cuando leemos como hacer para desactivar un link esta mala costumbre es lo que contestan o por lo que veo parece ser que la pagina la estas haciendo en dreamweaver o algo parecido

como veo que el link funciona mediante el evento onclick puedes hacer esto

<a href="javascript:MM_showHideLayers(...);return false"></a

Última edición por php.java.jsp; 08/05/2006 a las 23:35
  #4 (permalink)  
Antiguo 30/04/2006, 22:04
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Wow, a veces la "ayuda" llega con cara un tanto agresiva o intolerante...

Mira, lo que le sucede a tus enlaces es exactamente lo que comenta php.java.jsp, el enlace está buscando una referencia dentro del documento actual, y al ser una referencia nula, asume que debe posicionarse al inicio de la página.

Que es eso??

Esa parte de un URL, la que se coloca después de un signo de # se conoce como identificador de segmento. Y no es otra cosa que un "pseudo-link" interno... te lo explico:

http://www.dominio.com/nosotros.html#clientes

En breve, esta URL le está diciendo al navegador: Ve a www.dominio.com, busca el archivo "nosotros.html" y posicionate en la sección que se identifica como "clientes".

La explicación: ¿Por qué se usa para SUPRIMIR enlaces?

Dado que este elemento de un URL es "inofensivo", es decir, no provoca una recarga del documento, y no dispara ningún error su ausencia ó presencia, se ha usado de forma tradicional en la composición de enlaces que no se quiere que llamen a un nuevo documento web. Usualmente para usar el enlace para un llamado Javascript desde otra propiedad (onclick).

Entonces, la costumbre ha provocado que esto se haga "normal"...
<a href="#" onclick="accion_javascript();">Tal Cosa</a>

Si bien es cierto que esto es una práctica no recomendable, tampoco creo que deba juzgarte por hacerlo (en todo caso, mejor te informo para que tu decidas), también es cierto que puedes suprimir el error sin mayores cambios.

Busca los enlaces que te dan problema, encuentra su propiedad "onclick" y agregale una instrucción final "return false;", esta instrucción le dice al navegador "No sigas el enlace de este elemento, la acción se ha cancelado"... por ejemplo:

... onclick="MM_showHideLayers(...); return false;">


A continuación podría recomendarte una mejor forma de hacerlo (que por cierto dista mucho de ser usando el pseudo-protocolo javascript:funcion), y esto es hacerlo de forma no-intrusiva, dejando que javascript se encargue de encontrar los elementos y asignar las acciones correspondientes SIN ALTERAR EL HTML.

Sin embargo creo que es mejor recomendarte que te familiarices un poco con la estructura del HTML generado por Dreamweaver, y trates de poco a poco dejar de depender de sus (malas) funciones integradas y busques la forma de hacer las tuyas propias (o al menos de elegir las que más te gusten).

Espero que esto te ayude.

Saludos
__________________
Manoloweb
  #5 (permalink)  
Antiguo 01/05/2006, 01:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Mi punto de vista:

Me parece que esta costumbre que tampoco me gusta se ha generalizado por ver una manita para indicar que es una "zona caliente"... o sea que se puede pinchar (admito que hubo un tiempo que también tenía ese "vicio").

En algo que estoy en desacuerdo es en poner un enlace y el script "return false"... me parece que es un grave error semántico ya que al poner return false queremos expresar la cancelación del enlace... o sea que al usar un tag a con su atributo href qeremos decir que queremos "enlazar" y al poner "return false" el significado es "cancelar el enlace"... en mi opinión debe reservarse el script para validaciones o confirmaciones:

<a href="otro_destino.html" onclick="return confirm('¿Enlazar...?')"...

En resumen: para cualquier script, usar onclick en cualquier tag y si se desea mostrar la manito de zona caliente hacerlo con estilos: cursor: pointer. y dejar el tag a para enlaces... sin return false (a no ser que haya que validar/confirmar)

<span onclick="MM_showHideLayers(...)" style="cursor: pointer">...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 01/05/2006, 20:27
 
Fecha de Ingreso: octubre-2004
Mensajes: 128
Antigüedad: 13 años, 1 mes
Puntos: 2
mi actitud no es ser agresivo con nadie por un "mal pero muy mal habito" que seguramente de programas como dreamweaver es de donde halla nacido esa mala costumbre

si me molesto porque pregunten eso es porque a quien no le ha pasado ( por lo menos a mi si y muchas veces), que estas navegando y al dar click en algun sitio te regresa al inicio, con esto causando una interrupcion en tu navegacion

yo verdaderamente ignoro estrictamente hablando cuales son las funciones de cada tag, si el w3c especifica el elemento <a ..> tiene tal funcion y soporta tales eventos, esto es correcto y esto no lo es

si esto es correcto <a href="#">,
si esto no lo es <a href="javascript:;return false">

asi como las recomendaciones de usar capas en lugar de tablas y muchas otras en torno a css yo pienso que el uso de <a href="#"> es un mal habito como diseñar una pagina 100% con tablas a diferencia de que eso de diseñar con tablas se ha difundido mucho que esta mal hecho, que para eso esta el css mientras que esto <a href="#"> simplemente ha pasado desapercibido sin que nadie le de importancia.

Ha pesar de esto esta misma pregunta la he leido muchas veces aqui y la seguire leyendo porque seguiremos con la misma costumbre.

Por cierto manoloweb y caricatos es la primera vez que encuentro alguien que concuerde conmigo en que esto <a href="#"> no es recomendable

Última edición por php.java.jsp; 01/05/2006 a las 20:33
  #7 (permalink)  
Antiguo 06/05/2006, 06:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por php.java.jsp
porque lo que estas haciendo no solo es molesto para el usuario sino la tonteria, el error mas grande que aun aqui en el foro personas con grandes habilidades cometen

esto href="#" esta mal

la funcion de href="#algo" es ir a algun lugar de la pagina definida con <a name="algo">

<a href="#">Esto es una estup...%&#!$# error de novato</a>

....
como veo que el link funciona mediante el evento onclick puedes hacer esto

<a href="javascript:MM_showHideLayers(...);return false"></a
Estoy totalmente en desacuerdo con esta afirmación. Una cosa es que se use mal y otra muy distinta es que esté mal o sea incorrecto.

Creo que se pueden emitir opiniones personales sin hacer afirmaciones rotundas que hagan creer a terceros que algo es una verdad absoluta. Indícanos de qué fuente has sacado esa afirmación, por favor

El atributo href puede anularse perfectamente con javascript en el caso de que no queramos que se active. Lo que sí es cierto es que debería contener acceso a algún recurso en el caso de que el navegador tuviera javascript desabilitado.

Una fuente a la cual le tengo gran respeto que es tierradenomadas.com desaconseja precisamente, en su artículo Malas costumbres, el uso de href="javascript:algo()"

Un saludo
  #8 (permalink)  
Antiguo 06/05/2006, 06:38
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por caricatos
En resumen: para cualquier script, usar onclick en cualquier tag y si se desea mostrar la manito de zona caliente hacerlo con estilos: cursor: pointer. y dejar el tag a para enlaces... sin return false (a no ser que haya que validar/confirmar)

<span onclick="MM_showHideLayers(...)" style="cursor: pointer">...
Buenas Pepe

Tampoco estoy de acuerdo (del todo) con esta afirmación. Todo tiene matices y hay casos y casos. ¿Qué sucede si no se carga la hoja de estilos y/o si no está activado el javascript? nada le hará notar al usuario que ahí hay que hacer click ni tampoco habrá donde hacer click para que lleve a un recuso alternativo en el caso de que se hayan previsto estas posibilidades y se hayan incluido accesos alternativos a la misma información.

Expongo un caso:

n número de imágenes pequeñas que se muestran y que al pinchar en ellas se muestran ampliadas al lado.
Si no carga css el cursor no indicará que se debe/puede hacer click en ellas y si no hay javascript no se podrá acceder a la imagen ampliada desde un a href con lo cual se pierde el acceso a esa información (la imagen)

Opino que hay muchas variantes y necesidades en cada caso y en muchos el aplicar un return false a un a href/name es perfectamente válido y el no usarlo dificulta la accesabilidad

Un saludo
  #9 (permalink)  
Antiguo 06/05/2006, 10:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Cita:
Iniciado por tunait
Buenas Pepe

Tampoco estoy de acuerdo (del todo) con esta afirmación...
Hola:

Justamente ese es el encanto de estos foros, que podamos opinar libremente...

Si bien reconozco que los enlaces alternativos tienen su funcionalidad, se trata de una ambigüdad (En otra ocasion plantearon un caso similar, y es lo único que se me ocurre), y es algo que prefiero no fomentar...

Creo que no deben considerarse situaciones ambiguas... si importa que el cliente tenga javascript desactivado, no poner nada con javascript... y el tema de los estilos, pues ponerlos inline...

Lo de return false, lo puse en el artículo de MDW (¡has visto que ya tengo 3!) y probado en todos los navegadores (que yo tengo...), y estoy convencido que lo mejor es lo que puse (Siempre estoy abierto a debatir)...

Bueno, siempre trato de aconsejar lo mejor, y es eso lo que creo que he hecho. Que hayan alternativas, y que sean válidas es bueno, y funcionan y...

<offtopic>Helena: Ya puse el enlace de tu página en la mía... Un abrazo</offtopic>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 06/05/2006, 12:41
 
Fecha de Ingreso: octubre-2004
Mensajes: 128
Antigüedad: 13 años, 1 mes
Puntos: 2
Cita:
Iniciado por tunait
Indícanos de qué fuente has sacado esa afirmación, por favor
De ninguna, y ya lo dije antes y hasta lo resalte, estrictamente que es correcto y que no lo es

si me equivoque entonces lo admito y repito que el motivo por el que nunca me ha gustado <a href="#"> es porque muchas veces en las paginas es molesto que al hacer click en un link te regresen al inicio y a veces el script que se debia de ejecutar tampoco lo haga convirtiendose en un enlace muerto



entonces ahora se que href="javascript()"> es incorrecto pero href="#" tambien lo es.




Entonces "yo creo" (no se vaya a confundir otra vez con que estoy afirmando cosas sin tener con que justificarlas),

el usar links no para enlazar que es presisamente para lo que son sino para ejecutar scripts es como hace años que no estaba tan difundido el css, los que para hacer espacios en blanco ponian por ejemplo

<br><br><br><br><br><br><br><br><br><br><br><br><b r><br>
<br><br><br><br><br><br><br><br><br><br><br><br><b r><br>
<br><br><br><br><br><br><br><br><br><br><br><br><b r><br>

o para posicionar texto ponian imagenes "invisibles"

<img src="invisible.gif">

o sea, nuevamente es un caso donde tambien a los elementos se les cambia su verdadera funcion para adaptarlo a las necesidades.
  #11 (permalink)  
Antiguo 06/05/2006, 13:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por caricatos
Justamente ese es el encanto de estos foros, que podamos opinar libremente...
Desde luego
Cita:
Iniciado por caricatos
Creo que no deben considerarse situaciones ambiguas... si importa que el cliente tenga javascript desactivado, no poner nada con javascript... y el tema de los estilos, pues ponerlos inline...
Entonces no debemos usar nunca el potencial de javascript sólo por si algún navegador no lo soporta o no lo tiene activado? Para algo existen los tags <noscript> ... </noscript>

Sea como fuere las pautas de accesabilidad recomiendan dar alternativas de acceso a la información en el caso de que un dispositivo no tenga javascript activado.
Cita:
6.3 Asegúrese de que las páginas sigan siendo utilizables cuando se desconecten o no se soporten los scripts, applets u otros objetos programados. Si esto no es posible, proporcione información equivalente en una página alternativa accesible. [Prioridad 1]

Por ejemplo, asegúrese de que los enlaces que lanzan scripts funcionan cuando éstos se desconecten o no se soporten (Por ejemplo, no utilizar un "javascript" como objetivo de un enlace). Si no es posible hacer la página utilizable sin scripts, proporcione un texto equivalente con el elemento NOSCRIPT o utilice un script del servidor en lugar de un script de cliente o proporcione una página alternativa accesible como para el punto de verificación 11.4. Consultar también la pauta 1.
Técnicas para el punto de verificación 6.3.
http://www.discapnet.es/web_accesibl...l#tech-scripts
En el ejemplo que expuse en el mensaje anterior se usan los links para albergar la llamada a las funciones js que muestran la imagen ampliada anulando la acción del href y en el caso de no estar activado el js se activa el link que lleva directamente a la imagen ampliada. Esto con un span en lugar del link no sería posible.

Continuando con las pautas de accesabilidad el acceso a la información no debiera estar condicionada a los eventos de ratón. La información debería poder ser accesible usando el teclado en caso necesario.
Cita:
6.4 Para los scripts y applets, asegúrese de que los manejadores de evento sean independientes del dispositivo de entrada. [Prioridad 2] http://www.discapnet.es/web_accesibl...erable-scripts
http://www.discapnet.es/web_accesibl...ce-independent
No podemos situar el foco a un span y por lo tanto no podemos activar el onclick a un span mediante el teclado.


No creo que sea necesario que importe que el cliente tenga javascript para usarlo o no. Cualquier ( o casi cualquier) página web debería cumplir con estas pautas para que puedan ser utilizadas desde distintos dispositivos.

Cita:
Iniciado por caricatos
(¡has visto que ya tengo 3!)
yess, vas lanzao

Un saludo
  #12 (permalink)  
Antiguo 06/05/2006, 13:57
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por php.java.jsp
entonces ahora se que href="javascript()"> es incorrecto pero href="#" tambien lo es.
Hola de nuevo php.java.jsp


Tal vez no sea correcto el uso de href="#" (que para mi lo es) pero desde luego es mucho más recomendable que el uso de href="javascript()"

Un saludo
  #13 (permalink)  
Antiguo 06/05/2006, 18:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Un poco de javascript...

Código:
<html>
	<head>
		<script>
			function js() {
				document.getElementById("conJS").style.display = "inline";
				document.getElementById("sinJS").style.display = "none";
			}
		</script>
	</head>
	<body onload="js()">
		<span id="conJS" style="display: none">Javascript activo</span>
		<span id="sinJS" style="display: inline">Javascript inactivo</span>
	</body>
</html>
Nunca he usado el tag noscript, pero puestos...

Si es que yo prefiero que todos tengan js activo...

Sobre el foco en un span, está claro, pero siempre quise diferenciar un enlace de un script... y la información debe estar accesible a través de enlaces y los script deben reservarse para otras cosas como efectos (transiciones, rollovers...)
Por eso pongo énfasis en el concepto de web semántica. Un enlace está para enlazar, y no para que se active un script... a href se podría "traducir" como enlazar a... lo mismo que form action quiere decir formulario con destino a...

Bueno... queda el tema abierto...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #14 (permalink)  
Antiguo 07/05/2006, 14:08
 
Fecha de Ingreso: octubre-2004
Mensajes: 128
Antigüedad: 13 años, 1 mes
Puntos: 2
yo seguire insistiendo en no hacer uso de href="#" y ahora mismo digo porque:

para no seguir viendo que muy frecuentemente preguntan lo mismo, por que este efecto tan raro cuando hago click, porque la pagina se me rebota, porque .... ?

de una o de otra forma pero lo preguntan, tan solo aqui un ejemplo

http://www.forosdelweb.com/search.php?searchid=637356

en el peor de los casos si queremos evitar que se nos rebote la pagina al inicio al hacer click de uno de estos links se tiene una solucion tan simple como href="#null" o href="#loquesea"

yo con esto ya pongo otra solucion para evitar el rebote.

que por cierto era precisamente ese el tema de este post: "como evitar ese comportamiento" y no
"es o no es correcto href="#"
  #15 (permalink)  
Antiguo 07/05/2006, 19:04
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por caricatos
Sobre el foco en un span, está claro, pero siempre quise diferenciar un enlace de un script... y la información debe estar accesible a través de enlaces y los script deben reservarse para otras cosas como efectos (transiciones, rollovers...)
Puede haber información oculta esperando a mostrarse ante un evento click o focus que nunca podrá mostrarse sin un ratón en caso de no usar un elemento <a> como portador del evento

Cita:
Iniciado por caricatos
Por eso pongo énfasis en el concepto de web semántica. Un enlace está para enlazar, y no para que se active un script... a href se podría "traducir" como enlazar a... lo mismo que form action quiere decir formulario con destino a...
Pero precisamente, entre otras cosas, para eso está el dhtml, no sólo para hacer efectos de rollovers o transiciones si no para dar dinamismo a las páginas y si hay que anular un enlace para mostrar la misma información en una forma alternativa más vistosa o práctica, pues se anula y la página seguirá siendo semántica y además accesible. El link, de una u otra forma, dará el acceso a la información que se desea mostrar.

Me agradan estos intercambios de impresiones pues me hacen observar desde otros ángulos

Un saludo
  #16 (permalink)  
Antiguo 07/05/2006, 19:16
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Cita:
Iniciado por php.java.jsp
en el peor de los casos si queremos evitar que se nos rebote la pagina al inicio al hacer click de uno de estos links se tiene una solucion tan simple como href="#null" o href="#loquesea"
Hum ... no es mal truco

Cita:
Iniciado por php.java.jsp
que por cierto era precisamente ese el tema de este post: "como evitar ese comportamiento" y no
"es o no es correcto href="#"
Cierto, aunque todo lo que se ha expuesto en este post es interesante para quienes estén usando o tengan intención de usar un link para llamar a javascript

Gracias por el truco

saludos
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 19:13.