Foros del Web » Creando para Internet » HTML »

web contenido estático

Estas en el tema de web contenido estático en el foro de HTML en Foros del Web. Hola buenas, Quizá sea una tontera y quizá no mi pregunta, espero se entienda. La cosa es, quiero crear una web en la cual, sólo ...
  #1 (permalink)  
Antiguo 07/02/2015, 19:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
web contenido estático

Hola buenas,

Quizá sea una tontera y quizá no mi pregunta, espero se entienda.

La cosa es, quiero crear una web en la cual, sólo cambie o se refresque el contenido de la misma no así la página completa. Me explico.

En siguiente imagen, tenemos una cabecera, un pie de página, dos columnas que albergaran barras de navegación para el sitio. Y en medio el contenido que quiero que se actualice conforme hagamos clic en algún enlace de la barra de navegación.


Quiero que solamente cambie lo de en medio, lo demás no se refresque.

Espero se entienda
  #2 (permalink)  
Antiguo 07/02/2015, 21:54
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 6 meses
Puntos: 155
Respuesta: web contenido estático

...yo usaria JavaScript...puede ser un simple AJAX, o mejor aún; AngularJS, Backbone.js, etc, etc
  #3 (permalink)  
Antiguo 07/02/2015, 23:12
Avatar de LucasAddams  
Fecha de Ingreso: febrero-2015
Ubicación: Argentina
Mensajes: 26
Antigüedad: 9 años, 9 meses
Puntos: 3
Respuesta: web contenido estático

Concuerdo con ipraetoriux, solo que yo lo haría con Jquery. Te doy un ejemplo simple, lo probas y me decís si es más o menos lo que querés:

Código HTML:
<head>
...
                <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
		<script type="text/javascript" src="js/script.js"></script>
...
</head> 
Y dentro del body:

Código HTML:
<body>
          <div id="menu">
				<a href="#">Películas</a>
				<a href="#">Juegos</a>
				<a href="#">Música</a>
				<a href="#">Videos</a>
				<a href="#">Series</a>
         </div><!--Fin de Menú-->

          <div id="Caja">
                                <div class="contenido"><img src="Ejemplo 1"></div>
                                <div class="contenido"><img src="Ejemplo 2"></div>
                                <div class="contenido"><img src="Ejemplo 3"></div>
                                <div class="contenido"><img src="Ejemplo 4"></div>
                                <div class="contenido"><img src="Ejemplo 5"></div>
          </div>
</body> 
En el archivo.js -el script-

Código:
var tabInicial = 1;
$(document).on("ready", main);

function main(){
	$("#menu a").on("click", abrirTab);
	$(".contenido").eq(tabInicial-1).fadeIn();
	$("#menu a").eq(tabInicial-1).addClass("tabActual");
}

function abrirTab(){
	$(".contenido").hide();
	$("#menu a").removeClass("tabActual");
	$(".contenido").eq($(this).index()).fadeIn();
	$(this).addClass("tabActual");
	return false;
}
Ah, no te olvides de darle poner en el css un .tabactual{background: (el color que quieras);} para que funcione y puedas probar.

P/D: Tampoco te olvides de descargar el jquery-1.7.1.min.js y ponerlo en el head como indiqué al principio. Si es algo así, intenta interiorizar para manejarte mejor en estas cosirijillas.
  #4 (permalink)  
Antiguo 04/04/2015, 20:36
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: web contenido estático

Hola a todos y gracias por responder, volví nuevamente a esta pregunta porque aún no lo resuelvo (sí, aún u.u)

Este es mi index, hice recién la estructura, he estado intentado hace lo que me dice LucasAddams, pero no doy con hacer funcionar.

Si alguien me da otra vuelta de tuerca puede que lo pille u otro ejemplo no se..

Les dejo lo que llevo hasta aquí
index.html
Código HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<title>TodoVelero</title>

<meta charset="utf-8">
<meta name="description" content="" />

<style type="text/css">
/* --------- demo presentation------------ */
body {font: normal 16px/1.5em helvetica, aria, sans-serif; text-align: center;}
#demo-nav {width: 200px; margin: 10px auto; list-style: none; overflow: hidden}
#header, #footer {padding:5px; height: 50px; background: #0080FF; color:#fff}
#primary, #content, #secondary {height: 300px; padding: 50px 0}
#primary p, #content p, #secondary p {font-weight: bold}
#primary {background:#eee;}
#content {background:#819FF7;}
#secondary {background:#ddd;}
pre {text-align: left; margin:20px auto; width:100px}
/* --------------------------------------- */



/* ----- set width and center layout ----- */
#container {
	width:1200px;
	margin:20px auto;
}
/* --------------------------------------- */




/* ----------- float columns ------------- */
#primary {
	float:left;
	width:200px;
}

#content {
	float:left;
	width:800px;
}

#secondary {
	float:left;
	width:200px;
}
/* --------------------------------------- */




/* --------------------------------------- */
#footer {
	clear:both;
}
/* --------------------------------------- */

.menuizq{margin:0; padding:0; width:195px; list-style:none;background:rgb(255,255,255);}
.menuizq li{padding:0; margin:0 0 1px 0; height:40px; display:block; }
.menuizq li a{text-align:left;height:40px; padding:0px 25px; font:16px Verdana, Arial, Helvetica, sans-serif; color:rgb(255,255,255); display:block; background:url('verMenuImages.png') 0px 0px no-repeat; text-decoration:none;}
.menuizq li a:hover{background:url('verMenuImages.png') 0px -40px no-repeat; color:rgb(255,255,255);}
.menuizq li a.active, .menu li a.active:hover{background:url('verMenuImages.png') 0px -80px no-repeat; color:rgb(255,255,255);}
.menuizq li a span{line-height:40px;}

.menuder{margin:0; padding:0; width:195px; list-style:none;background:rgb(255,255,255);}
.menuder li{padding:0; margin:0 0 1px 0; height:40px; display:block; }
.menuder li a{text-align:left;height:40px; padding:0px 25px; font:16px Verdana, Arial, Helvetica, sans-serif; color:rgb(255,255,255); display:block; background:url('verMenuImages.png') 0px 0px no-repeat; text-decoration:none;}
.menuder li a:hover{background:url('verMenuImages.png') 0px -40px no-repeat; color:rgb(255,255,255);}
.menuder li a.active, .menu li a.active:hover{background:url('verMenuImages.png') 0px -80px no-repeat; color:rgb(255,255,255);}
.menuder li a span{line-height:40px;}
</style>

</head>

<body>

<div id="container">
	<div id="header">
		<p>TodoVelero</p>
	</div>
	
	<div id="primary">
<ul class="menuizq">
  <li><a href="#" class="active" target="_top"><span>Carpas</span></a></li>
  <li><a href="#"><span>Cubrecokpit</span></a></li>
  <li><a href="#"><span>Bimini Top</span></a></li>
  <li><a href="#"><span>Toldos</span></a></li>
  <li><a href="#"><span>Cierres/Ventanas</span></a></li>
</ul>

	</div>
	
	<div id="content">
Contenido
	</div>
	
	<div id="secondary">
<ul class="menuizq">
  <li><a href="#" class="active" target="_top"><span>Carpas</span></a></li>
  <li><a href="#"><span>Fundas velas</span></a></li>
  <li><a href="#"><span>Bolsillos</span></a></li>
  <li><a href="#"><span>Cojines</span></a></li>
  <li><a href="#"><span>Chubasqueras</span></a></li>
</ul>
	</div>
	
	<div id="footer">
		<p>Pie página</p>
	</div>
	
</div>

</body>
</html> 
  #5 (permalink)  
Antiguo 05/04/2015, 06:58
Avatar de mbm150  
Fecha de Ingreso: enero-2013
Ubicación: Muskiz
Mensajes: 79
Antigüedad: 11 años, 10 meses
Puntos: 21
Respuesta: web contenido estático

Hola, yo creo que la mejor opción seria usar AngularJS, que es muy sencillo y ademas tendrás todas las URLs. Aqui esta la web: https://angularjs.org/.

De todas formas, para hacerlo de la forma que te dijo el compañero, te falta poner el script con el codigo jQuery, deberias incluirlo en el head, despues de la etiqueta </style>.
Código HTML:
Ver original
  1. <script src="js/jquery-1.7.1.min.js"></script>
  2. var tabInicial = 1;
  3. $(document).on("ready", main);
  4.  
  5. function main(){
  6.     $("#menu a").on("click", abrirTab);
  7.     $(".contenido").eq(tabInicial-1).fadeIn();
  8.     $("#menu a").eq(tabInicial-1).addClass("tabActual");
  9. }
  10.  
  11. function abrirTab(){
  12.     $(".contenido").hide();
  13.     $("#menu a").removeClass("tabActual");
  14.     $(".contenido").eq($(this).index()).fadeIn();
  15.     $(this).addClass("tabActual");
  16.     return false;
  17. }
Lo que te propone es que pongas todas las paginas que vayas a hacer (Todas las del menú) en la misma página, dentro de un div con class content cada una y al hacer click vas ocultando uno y mostrando otro. Por lo tanto, tendrias que crear un <div class="content"></div> y poner dentro lo que sea con cada una de las secciones de tu web dentro del propio index.
Código HTML:
Ver original
  1. <!--Donde tienes esto-->
  2. <div id="content">
  3. Contenido
  4. </div>
  5. <!--Cambiarlo por esto-->
  6. <div class="content">
  7. Contenido enlace 1 de menu
  8. </div>
  9. <div class="content">
  10. Contenido enlace 2 de menu
  11. </div>
  12. etc.
Y claro, tendrías que cambiar en el CSS #content por .content. Pero esto tiene una pega, y es que la URL no cambia.

Yo creo que la mejor opción es usar AngularJS, pero tu decides. En la web tienes ejemplos: https://docs.angularjs.org/tutorial/step_07.
__________________
Juego del Ahorcado

Última edición por mbm150; 05/04/2015 a las 07:03 Razón: Mejor explicado.

Etiquetas: cabeceras, contenido, estatica, estatico, navegacion
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 07:52.