
05/06/2008, 09:35
|
| | Fecha de Ingreso: enero-2008
Mensajes: 273
Antigüedad: 17 años, 2 meses Puntos: 1 | |
Adaptar el siguiente Script Hola, gracias a una respuesta en este foro, di con este script de "http://dezinerfolio.com/" (excelente por cierto) que me realiza un SoftScroll entre los anclajes de mi pagina web. El tema es que mi idea primaria era hacerlos de manera horizontal en vez de vertical, ya que el diseño pensado tiene que ver con eso. Y claro, no manejo JS.. y pensé que escarbando un poco iba a dar con la respuesta.. pero no (  ) alguién puede darme una mano al respecto?¿es posible adaptar este script?¿alguien tiene otro script?
Desde ya muchas gracias.
Este es el JS en cuestión:
Código:
/*--------------------------------------------------------------------------
* Smooth Scroller Script, version 1.0.1
* (c) 2007 Dezinerfolio Inc. <[email protected]>
*
* For details, please check the website : http://dezinerfolio.com/
*
/*--------------------------------------------------------------------------*/
Scroller = {
// control the speed of the scroller.
// dont change it here directly, please use Scroller.speed=50;
speed:10,
// returns the Y position of the div
gy: function (d) {
gy = d.offsetTop
if (d.offsetParent) while (d = d.offsetParent) gy += d.offsetTop
return gy
},
// returns the current scroll position
scrollTop: function (){
body=document.body
d=document.documentElement
if (body && body.scrollTop) return body.scrollTop
if (d && d.scrollTop) return d.scrollTop
if (window.pageYOffset) return window.pageYOffset
return 0
},
// attach an event for an element
// (element, type, function)
add: function(event, body, d) {
if (event.addEventListener) return event.addEventListener(body, d,false)
if (event.attachEvent) return event.attachEvent('on'+body, d)
},
// kill an event of an element
end: function(e){
if (window.event) {
window.event.cancelBubble = true
window.event.returnValue = false
return;
}
if (e.preventDefault && e.stopPropagation) {
e.preventDefault()
e.stopPropagation()
}
},
// move the scroll bar to the particular div.
scroll: function(d){
i = window.innerHeight || document.documentElement.clientHeight;
h=document.body.scrollHeight;
a = Scroller.scrollTop()
if(d>a)
if(h-d>i)
a+=Math.ceil((d-a)/Scroller.speed)
else
a+=Math.ceil((d-a-(h-d))/Scroller.speed)
else
a = a+(d-a)/Scroller.speed;
window.scrollTo(0,a)
if(a==d || Scroller.offsetTop==a)clearInterval(Scroller.interval)
Scroller.offsetTop=a
},
// initializer that adds the renderer to the onload function of the window
init: function(){
Scroller.add(window,'load', Scroller.render)
},
// this method extracts all the anchors and validates then as # and attaches the events.
render: function(){
a = document.getElementsByTagName('a');
Scroller.end(this);
window.onscroll
for (i=0;i<a.length;i++) {
l = a[i];
if(l.href && l.href.indexOf('#') != -1 && ((l.pathname==location.pathname) || ('/'+l.pathname==location.pathname)) ){
Scroller.add(l,'click',Scroller.end)
l.onclick = function(){
Scroller.end(this);
l=this.hash.substr(1);
a = document.getElementsByTagName('a');
for (i=0;i<a.length;i++) {
if(a[i].name == l){
clearInterval(Scroller.interval);
Scroller.interval=setInterval('Scroller.scroll('+Scroller.gy(a[i])+')',10);
}
}
}
}
}
}
}
// invoke the initializer of the scroller
Scroller.init();
/*------------------------------------------------------------
* END OF CODE
/*-----------------------------------------------------------*/
Última edición por elsalta; 05/06/2008 a las 09:56
Razón: estaba muy desprolijo.
|