|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
|
[Javascript, Firefox & XHTML] Scroll
Ciao a tutti...
sto cercando di inserire in una mia pagina html un box scrollabile mediante metodo onmouseover su due immagini (ho copiato lo scipt da qui). Tutto funzionava perfettamente (Safari, Firefox, IE, Opera...), finchè non sono passato alla fase "validazione xhtml".... inserito il doctype, non funziona più lo scroll su Firefox (più in generale su browser gecko-based)... il codice utilizzato è questo: Codice:
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.el.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('BoxRight')
objScroller=new ConstructObject('text','BoxRight')
objScroller.MoveArea(0,0)
objContainer.css.visibility='visible'
initialised=true;
}
document.onkeydown = onKeyDown
document.onkeyup = onKeyUp
function onKeyDown(){
code = event.keyCode
switch (code)
{
case 38: // Up Arrow
PerformScroll(-7);
break;
case 40: // Down Arrow
PerformScroll(7);
break;
default:
}
}
function onKeyUp(){
if(event.keyCode == 38 || event.keyCode == 40)
CeaseScroll();
}
Codice:
<script type="text/javascript" src="scripts/scroll.js"></script>
__________________
C'era un moscerino sul tuo schermo |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
|
up
__________________
C'era un moscerino sul tuo schermo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:50.



















