Volando con Moo
Mootools es más que un excelente framework, es tremenda herramienta de desarrollo. Y de efectos. En su sitio web oficial, la documentación deja algo que desear, y la falta de ejemplos desglosados impide que quienes no estén acostumbrados a esta herramienta pueda siquiera comenzar a usarla. Un efecto que me gusta mucho y que he utilizado un par de ocasiones es FX.Scroll, donde puedes a través de id`s linkear a secciones dentro de un div, y el script te llevará volando hacia su objetivo, con una suave transición. Para que sepan de lo que hablo, vean el ejemplo final:
Bueno, la idea es mostrar cómo se hace para que uds. puedan replicarlo según sus necesidades. Comenzaré por el HTML que se constituye de 3 partes: el menú (#menu, que lo pueden hacer cómo se les dé la gana, lo importante son los id‘s de los links), el div que albergará las secciones (#dentro, que están posicionadas absolutamente) y el contenedor que funciona como una ventana que esconde el resto (#envoltura esconde con overflow: hidden):
<ul id="menu"><!-- #menu -->
<li><a id="link1" href="#">Contenido 1</a></li>
<li><a id="link2" href="#">Contenido 2</a></li>
<li><a id="link3" href="#">Contenido 3</a></li>
</ul><!-- /#menu -->
<div id="envoltura"><!-- #envoltura -->
<div id="dentro"><!-- #dentro -->
<div id="contenido1">
<h1>1</h1>
</div>
<div id="contenido2">
<h1>2</h1>
</div>
<div id="contenido3">
<h1>3</h1>
</div>
</div><!-- /#dentro -->
</div><!-- /#envoltura -->
Ya el CSS es lo que ayuda a la magia (obviaré el estilo del #menu):
#envoltura {
clear: both;
margin: 5px auto;
overflow: hidden;
height: 300px;
width: 600px;
border: 3px solid #666;
position: relative;
}
#dentro {
width: 1600px;
height: 1600px;
background: url(imgs/fondo.jpg) center center no-repeat;
position: relative;
}
h1 {
color: #fff;
font-size: 200px;
text-shadow: #000 1px 1px 10px;
}
#contenido1 {
position: absolute;
left: 250px;
top: 80px;
}
#contenido2 {
position: absolute;
left: 800px;
top: 1200px;
}
#contenido3 {
position: absolute;
left: 900px;
top: 550px;
}
Y finalmente lo que hace la magia, el JS. Antes que todo se linkea mootools.js, y luego el script que podemos configurar a nuestro gusto:
window.addEvent('domready', function(){
var scroll = new Fx.Scroll('envoltura', {
wait: false,
duration: 1000,
offset: {'x': -230, 'y': -20},
transition: Fx.Transitions.Back.easeInOut
});
$('link1').addEvent('click', function(event) {
event = new Event(event).stop();
scroll.toElement('contenido1');
});
$('link2').addEvent('click', function(event) {
event = new Event(event).stop();
scroll.toElement('contenido2');
});
$('link3').addEvent('click', function(event) {
event = new Event(event).stop();
scroll.toElement('contenido3');
});
});
Bueno, nuevamente les dejo el link al ejemplo final: