Hola a tod@s!
Qué tal? Bueno, necesitaría ayuda con un javascripts que no me funciona muy bien... y no se que hacer...
Pretendo crear una página en la que aparezca un calendario en el que podemos navegar mediante unas flechas y directamente a cada mes mediante hipervinculos (utilizando anclas).
El fallo que me da es que si primero me muevo mediante los enlaces y voy, por ejemplo, a cualquier mes y luego quiero acceder al anterior mediante las flechas no me deja subir porque entiende que la posición continua siendo para X cero.
Muchas Gracias.
<html>
<head>
<title></title>
<style type="text/css">
<!--
-->
#divUpControl{position:absolute; width:295; left:346px; top:15px; z-index:1; text-align: right}
#divDownControl{position:absolute; width:295; left:348; top:195; z-index:1; text-align: right}
#divContainer{position:absolute; width:295; height:160; overflow:hidden; top:25; left:348; clip:rect(0,295,160,0); visibility:hidden}
#divContent{
position:absolute;
top:0px;
left:-24px;
visibility: visible;
width: 278px;
height: 1311px;
}
</style>
<script language="JavaScript">
function verifyCompatibleBrowser(){
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
return this
}
bw=new verifyCompatibleBrowser()
var speed=50
var loop, timer
function ConstructObject(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.el=bw.dom?document.getElementById(obj):bw.ie4 ?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style :bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
this.scrollHeight=bw.ns4?this.css.document.height: this.el.offsetHeight
this.clipHeight=bw.ns4?this.css.clip.height:this.e l.offsetHeight
this.up=MoveAreaUp;this.down=MoveAreaDown;
this.MoveArea=MoveArea; this.x; this.y;
this.obj = obj + "Object"
eval(this.obj + "=this")
return this
}
function MoveArea(x,y){
this.x=x;this.y=y
this.css.left=this.x
this.css.top=this.y
}
function MoveAreaDown(move){
if(this.y>-this.scrollHeight+objContainer.clipHeight){
this.MoveArea(0,this.y-move)
if(loop) setTimeout(this.obj+".down("+move+")",speed)
}
}
function MoveAreaUp(move){
if(this.y<0){
this.MoveArea(0,this.y-move)
if(loop) setTimeout(this.obj+".up("+move+")",speed)
}
}
function PerformScroll(speed){
if(initialised){
loop=true;
if(speed>0) objScroller.down(speed)
else objScroller.up(speed)
}
}
function CeaseScroll(){
loop=false
if(timer) clearTimeout(timer)
}
var initialised;
function InitialiseScrollableArea(){
objContainer=new ConstructObject('divContainer')
objScroller=new ConstructObject('divContent','divContainer')
objScroller.MoveArea(0,0)
objContainer.css.visibility='visible'
initialised=true;
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad=";InitialiseScrollableArea()" background="file:///F|/images/li_bg.gif">
<span class="stillink"></span> <span class="fliesstext"></span> <span class="fliesstext"></span>
<span class="fliesstext"></span>
<!-- begin absolutely positioned scrollable area object-->
<div id="divUpControl">
<a href="#" onMouseMove="javascript:;return false" onmouseover=PerformScroll(-3) onfocus=blur()
onmouseout=CeaseScroll()><img src="a.jpg" width="19" height="10" border="0"></a></div>
<div id="divDownControl"> <a href="#" onMouseMove= "javascript:;return false" onmouseover=PerformScroll(3) onfocus=blur() onmouseout=CeaseScroll()
><img src="a.jpg" width="19" height="10" border="0"></a>
</div>
<div id="divContainer">
<div id="divContent"> Eine Ebene ist ein Container in einer Webseite, der HTML-Seitenelemente
enthält. Durch die Verwendung von Ebenen in einer Seite stehen zusätzliche,
flexible Steuerelemente für dynamische Seitenfunktionen bereit.Beim Entwurf
von Webseiten stehen Webdesignern über Ebenen gleiche Beeinflussungsmöglichkeiten
und die gleiche Flexibilität wie im herkömmlichen Drucklayout zur
Verfügung.
<p>Ebenen können übereinander gelegt, aus- oder eingeblendet oder
zeitleistengesteuert über den Bildschirm geschoben werden. So kann
beispielsweise in eine Ebene ein Hintergrundbild eingefügt werden,
über die eine andere <a name="ANKER1"><strong>ANKER1</strong></a> Ebene
mit Text gelegt wird. Die Seite kann auch Bilder enthalten, die ein- und
ausgeblendet werden. Diese Effekte können Sie in Dreamweaver mit Ebenen
realisieren, ohne JavaScript- oder HTML-Code zu schreiben. Zu beachten ist
jedoch, dass ältere Browser den Quellcode für Ebenen nicht interpretieren
können und diesen folglich dann nicht korrekt ausgeben. </p>
<p>Wenn Sie in eine Webseite Ebenen einfügen, fügt Dreamweaver das
HTML-Tag für diese Ebenen in den Code ein. Für Ebenen können
Sie vier verschiedene Tags festlegen: div, span, layer und ilayer. div und
span sind die am häufigsten verwendeten Tags. Durch ihre Verwendung
wird gewährleistet, dass die <a name="ANKER2"><strong>ANKER2</strong></a> Ebenen von den meisten Besuchern Ihrer Website angezeigt werden können.
Standardmäßig erstellt Dreamweaver Ebenen mit dem div-Tag und
fügt den Ebenencode an der Einfügemarke oder ganz oben auf der
Seite unmittelbar nach dem body-Tag ein. Bei einer verschachtelten Ebene
wird der Code innerhalb des Tags eingefügt, das die übergeordnete
Ebene definiert.</p>
<p>Um Ebenen zu erstellen, klicken Sie Sie in der Objektpalette auf die Schaltfläche
Ebene zeichnen und ziehen die Ebene anschließend in das Dokumentfenster
oder Sie setzen die Einfügemarke an die Stelle des Dokumentfensters,
an der die Ebene eingefügt werden soll, und wählen dann Einfügen
> Ebene, um eine Ebene einzufügen. Um in einem Arbeitsgang mehrere
Ebenen zu zeichnen, klicken Sie in der Objektpalette auf die Schaltfläche
Ebene zeichnen und halten die Strg-Taste (Windows) bzw. die Befehlstaste
(Macintosh) gedrückt, während Sie die Ebenen zeichnen. Solange
Sie die Strg-Taste gedrückt halten, können Sie weitere neue Ebenen
zeichnen.</p>
<p>Mit der Ebenenpalette können Sie die Ebenen in Ihrem Dokument verwalten.
Wählen Sie Fenster > Ebenen oder drücken Sie F11, um die Ebenenpalette
zu öffnen. In der Ebenenpalette werden die Ebenen ihrer Struktur entsprechend
aufgelistet; die zuerst erstellte Ebene befindet sich ganz unten in der
Liste, die neueste Ebene ganz oben. <a name="ANKER3"><strong>ANKER3</strong></a> Verschachtelte Ebenen werden durch Namen dargestellt, die mit den übergeordneten
Ebenen verbunden sind. Klicken Sie auf die Plus- oder Minuszeichen bzw.
auf den Pfeil, um verschachtelte Ebenen ein- oder auszublenden.<br>
</p>
</div>
</div>
<!-- end absolutely positioned scrollable area object -->
<p> <a href="#ANKER1">Link Anker 1</a></p>
<p><a href="#ANKER2">Link Anker 2</a></p>
<p><a href="#ANKER3">Link Anker 3</a></p>
</body>
</html>