Ocultar parte web

ratontm

Hola, tengo una duda, y es que me ha molado mucho el efecto que tienen en esta web http://www.madebysofa.com/ donde cuando entras en cada una de las secciones se muestra debajo.

Es decir, primero esta oculto y cada opción del "menú" te lleva a una ancla (por ej. http://www.madebysofa.com/#people ) y te hace visible ese contenido, además de desplazar la web hacia abajo (que imagino que utilizarán algún script para hacer ese efecto de movimiento en el scroll).

La duda es, cómo se puede implementar algo así?

kraneok

#1 Creo que también podría hacerse sin anclas, simplemente ocultando los divs según convenga.

Zuki

#1 prueba con jQuery, es bastante sencillo.

1 respuesta
SicKneSs

#1 lo que dice #3 + AJAX.

2 respuestas
ratontm

El problema es que no domino bien jQuery y Ajax, quiero decir. No sé, por ejemplo, que debo buscar para encontrar estos plug-ins por internet. (No sé si me entenderéis. xD)

2 respuestas
glolg

#5 has de empezar enlazando la libreria de jQuery

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

Después para hacer de forma muy sencilla el efecto que dices, puedes hacerlo modificando el estilo de los divs que quieres mostrar con display:block y display:none, según.
Ahora, esta modificación del css puedes hacerlo directamente dentro de un evento, click, mouseover etc...
Para buscar referencias sobre el tema, es muy sencillo;
ej: fade con jQuery
ej: modificar css con jQuery
etc...

Otra es tener todo el contenido en BD y con ajax como te dicen cargar consultas sobre el mismo div sin necesidad de actualizar la pagina.

2 respuestas
Zuki

#5

una vez tengas enlazado el archivo JS como ha comentado #6

añades esto en el head


$(document).ready(function(){
 
    $("#capaamostrar").hide();
    $("#idboton").show();
 
$("#idboton").click(function(){
$("#idcapaaocultar").hide(); *// Puedes añadir mas elementos debajo si hay mas de 1 capa
$("#idcapaamostrar").slideToggle();
});
 
});


elkaoD

#4 AJAX es completamente innecesario, por no decir contraproducente.

2 respuestas
glolg

#8 coincido contigo, pero por ser una forma de poder hacer lo nombrado lo he dicho.

2 respuestas
elkaoD

#9 ¿cómo? ¿tienes doble cuenta y eres SicKneSs también? xD

1 2 respuestas
HaxeR

#9 a #10

oho

#8 una pregunta sin entender mucho y por curiosidad.

en esa web parece que no hay salto de página y si no utiliza ajax, ¿no estaría cargando todo el contenido visible y oculto? ¿o si hay salto de página?

1 respuesta
elkaoD

#12 carga todo el contenido y sólo muestra el que interesa.

1 respuesta
oho

#13 entonces con ajax sería mejor no? estarías cargando solo el contenido que te interesa ahorrando en kbs ¿por qué contraproducente?

1 respuesta
elkaoD

#14

  1. Ahorrar un par de kb no es ahorrar, es ser un agonías.
  2. No ahorras de hecho, probablemente se lleve más en abrir la conexión TCP (multiplicado por el número de secciones), mandar cabeceras HTTP, etc. que en mandarlo todo de golpe.
  3. Latencia en mostrar las secciones (se soluciona pre-cargando, pero para eso mándalo todo.)
  4. Caché más eficiente (no hay que esperar el 304 del servidor en cada sección.)
  5. Con cacheos, sólo se descargan la web UNA vez.
  6. http://www.funcion13.com/2012/04/19/la-cache-en-las-peticiones-ajax-de-jquery/
  7. SEO
  8. SEO
  9. SEO
  10. SEO
  11. SEO

#17 he editado un par de cosillas más.

2 1 respuesta
P

Llamadme loco pero creo que #1 no tiene ni jodida idea de programación y lo único que quiere es un archivo para meterlo en su web y que funcione xD

1 respuesta
oho

#15 interesante, gracias.

1 respuesta
ratontm

#16 En parte tienes razón, estoy empezando. Mirando cosas por mi cuenta, lo que pasa que entiendo la gran mayoría de conceptos. Ahora mismo lo que ando haciendo últimamente es que si veo algunas cosas de webs que me gustan voy al código fuente y le echo una ojeada para ver como "funciona", pero lo hice en esta y no sabía si utilizaban javascript o con los divs y css o cómo.

En fin, poco a poco, no? Por cierto, gracias por las respuestas, todo será trastear un poco.

glolg

#10 what da fak???? xDD , no soy multicuenta lo que estoy en clase y posiblemente este tal SicKneSs irá a mi escuela. Pregúntale si lo conoces si es de Monlau.

1 respuesta
elkaoD

#19 es de Las Palmas. Aquí está habiendo un WTF en toda regla. ¿Tú escribiste #4 o te refieres al final de #6? xD

1 respuesta
SicKneSs

hola? xD

glolg

#20 yoquese!!!xDDDD mas liao con lo del multicuenta por mi que borren los post xDDD
Perdonad mi mongolismo !!

11 días después
alterego

#1 Tienes otra opción si no quieres utilizar js, mediante display y target:
http://jsfiddle.net/nuXXM/

2 2 respuestas
elkaoD

#23 increíble! No se me hubiera ocurrido nunca.

ratontm

#23 Creo que es la opción que más me gusta. Podrías explicar un poco cómo funciona?

#26 Gracias!

2 respuestas
alterego

#25
En primer lugar oculto todos los divs, si quieres ocultar sólo unos divs concretos tendrás que aplicar display: none a cada uno:

#divUno, #divDos ... {
display: none;
}

A continuación, en el menu, los enlances hacen referencia a los ids de los divs, anchors.

<a href="#id_del_div">enlace 1</a>

Finalmente div:target , significa que cuando el div sea target de la página haga lo que escribas a continuación:

div:target {
aqui las propiedades que quieras cuando el div sea target
}

Para que te hagas una idea: www.pagina.com/hola#loquesea <- este es el target

1 1 respuesta
SicKneSs

target o marcador comunmente llamado en HTML :P

Buffoncete

#25 también puedes seguir el tutorial de web y css de codecademy y aprender todo esto de manera muy sencilla y dinámica.

Usuarios habituales

  • SicKneSs
  • alterego
  • ratontm
  • elkaoD
  • glolg
  • oho
  • Zuki