Avatar billede ingeman Seniormester
25. november 2004 - 14:02 Der er 10 kommentarer og
1 løsning

Hvad skal ændres ?

<script language="JavaScript">

//Static analog Clock by kurt.grigg@virgin.net
//Script featured on JavaScript Kit
//http://javascriptkit.com

fCol='000000';//face colour.
sCol='ff0000';//seconds colour.
mCol='000000';//minutes colour.
hCol='000000';//hours colour.


H='....';
H=H.split('');
M='.....';
M=M.split('');
S='......';
S=S.split('');
Ypos=0;
Xpos=0;
Ybase=8;
Xbase=8;
dots=12;
ns=(document.layers)?1:0;
if (ns){
dgts='1 2 3 4 5 6 7 8 9 10 11 12';
dgts=dgts.split(' ')
for (i=0; i < dots; i++){
document.write('<layer name=nsDigits'+i+' top=0 left=0 height=30 width=30><center><font face=Arial,Verdana size=1 color='+fCol+'>'+dgts[i]+'</font></center></layer>');
}
for (i=0; i < M.length; i++){
document.write('<layer name=ny'+i+' top=0 left=0 bgcolor='+mCol+' clip="0,0,2,2"></layer>');
}
for (i=0; i < H.length; i++){
document.write('<layer name=nz'+i+' top=0 left=0 bgcolor='+hCol+' clip="0,0,2,2"></layer>');
}
for (i=0; i < S.length; i++){
document.write('<layer name=nx'+i+' top=0 left=0 bgcolor='+sCol+' clip="0,0,2,2"></layer>');
}
}
else{
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=1; i < dots+1; i++){
document.write('<div id="ieDigits" style="position:absolute;top:0px;left:0px;width:30px;height:30px;font-family:Arial,Verdana;font-size:10px;color:'+fCol+';text-align:center;padding-top:10px">'+i+'</div>');
}
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < M.length; i++){
document.write('<div id=y style="position:absolute;width:2px;height:2px;font-size:2px;background:'+mCol+'"></div>');
}
document.write('</div></div>')
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < H.length; i++){
document.write('<div id=z style="position:absolute;width:2px;height:2px;font-size:2px;background:'+hCol+'"></div>');
}
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < S.length; i++){
document.write('<div id=x style="position:absolute;width:2px;height:2px;font-size:2px;background:'+sCol+'"></div>');
}
document.write('</div></div>')
}
function clock(){
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.57 + Math.PI * hr/6 + Math.PI*parseInt(time.getMinutes())/360;
if (ns){
Ypos=window.pageYOffset+window.innerHeight-60;
Xpos=window.pageXOffset+window.innerWidth-80;
}
else{
Ypos=document.body.scrollTop+window.document.body.clientHeight-60;
Xpos=document.body.scrollLeft+window.document.body.clientWidth-60;
}
if (ns){
for (i=0; i < dots; ++i){
document.layers["nsDigits"+i].top=Ypos-5+40*Math.sin(-0.49+dots+i/1.9);
document.layers["nsDigits"+i].left=Xpos-15+40*Math.cos(-0.49+dots+i/1.9);
}
for (i=0; i < S.length; i++){
document.layers["nx"+i].top=Ypos+i*Ybase*Math.sin(sec);
document.layers["nx"+i].left=Xpos+i*Xbase*Math.cos(sec);
}
for (i=0; i < M.length; i++){
document.layers["ny"+i].top=Ypos+i*Ybase*Math.sin(min);
document.layers["ny"+i].left=Xpos+i*Xbase*Math.cos(min);
}
for (i=0; i < H.length; i++){
document.layers["nz"+i].top=Ypos+i*Ybase*Math.sin(hrs);
document.layers["nz"+i].left=Xpos+i*Xbase*Math.cos(hrs);
}
}
else{
for (i=0; i < dots; ++i){
ieDigits[i].style.pixelTop=Ypos-15+40*Math.sin(-0.49+dots+i/1.9);
ieDigits[i].style.pixelLeft=Xpos-14+40*Math.cos(-0.49+dots+i/1.9);
}
for (i=0; i < S.length; i++){
x[i].style.pixelTop =Ypos+i*Ybase*Math.sin(sec);
x[i].style.pixelLeft=Xpos+i*Xbase*Math.cos(sec);
}
for (i=0; i < M.length; i++){
y[i].style.pixelTop =Ypos+i*Ybase*Math.sin(min);
y[i].style.pixelLeft=Xpos+i*Xbase*Math.cos(min);
}
for (i=0; i < H.length; i++){
z[i].style.pixelTop =Ypos+i*Ybase*Math.sin(hrs);
z[i].style.pixelLeft=Xpos+i*Xbase*Math.cos(hrs);
}
}
setTimeout('clock()',50);
}
if (document.layers || document.all) window.onload=clock;
//-->
</script>

<style type="text/css">
    DIV{font-family:arial,helvetica; font-size:10pt;}
    #divBottom{position:absolute; font-family:arial,helvetica; height:20; width:100; font-size:10pt; color:#0000FF; font-weight:bold}
</style>

<script language="JavaScript">
/*Set these values, gright for how much from the right you wan't the layer to go
and gbottom for how much from the bottom you wan't it*/

var gright=10
var gbottom=50

//Browsercheck
var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;


/********************************************************************************
Constructing the ChangeText object
********************************************************************************/
function makeObj(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
      this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')                           
    this.moveIt=b_moveIt;
}
function b_moveIt(x,y){
    this.x=x; this.y=y
      this.css.left=this.x
    this.css.top=this.y
}
/********************************************************************************
Initilizing the page, getting height and width to moveto and calls the
object constructor
********************************************************************************/
var pageWidth,pageHeight
function geoInit(){
    oTest=new makeObj('divBottom')
    pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
    pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
    checkIt()
    //sets the resize handler.
    onresize=resized
    if(ie) window.onscroll=checkIt;
}
/********************************************************************************
This function executes onscroll in ie and every 30 millisecond in ns
and checks if the user have scrolled, and if it has it moves the layer.
********************************************************************************/
function checkIt(){
    if(ie) oTest.moveIt(document.body.scrollLeft +gright,document.body.scrollTop+pageHeight-gbottom)
    else if(n){
        oTest.moveIt(window.pageXOffset+gright, window.pageYOffset+pageHeight-gbottom)
        setTimeout('checkIt()',20)
    }
}

//Adds a onresize event handler to handle the resizing of the window.
function resized(){
    pageWidth=(ie)?document.body.offsetWidth-4:innerWidth;
    pageHeight=(ie)?document.body.offsetHeight-2:innerHeight;
    if(ie) checkIt()
}


//Calls the geoInit onload
onload=geoInit;

//Here we will write the div out so that lower browser won't see it.
if(n || ie) document.write('<div id="divBottom"><a href="">Link</a><br><a href="">Link</div>')
</script>
Avatar billede ingeman Seniormester
25. november 2004 - 14:03 #1
Ovenstående script skulle vise både uret i højre side og linket i venstre side - men
det gør det ikke ?
Avatar billede olebole Juniormester
25. november 2004 - 14:40 #2
<ole>

... men den gør, hvad?

/mvh
</bole>
Avatar billede ingeman Seniormester
25. november 2004 - 14:46 #3
Scriptet skulle vise både uret i hjre side og link i venste side - den vise kun link - uret mangler.
Avatar billede roenving Novice
19. december 2004 - 02:27 #4
Du overskriver jo også den onload-funktion, der er til uret !o]

Fjern disse linjer sidst i layerscriptet (f.eks. ved at udkommentere, som jeg viser !-)

/*
//Calls the geoInit onload
onload=geoInit;
*/

-- og ændr linjen med onload i clock-scriptet

fra:

if (document.layers || document.all) window.onload=clock;

til:

if (document.layers || document.all) window.onload=function(){clock();geoInit();}

-- men du mangler jo at understøtte alle nuværende browsere udover IE ...
Avatar billede ingeman Seniormester
19. december 2004 - 09:49 #5
Jeg har fundet løsningen

//Calls the geoInit onload
//onload=geoInit;  det kald skal deaktiveres

Så skal begge javakald kaldes her
<body  onload="geoInit();clock();">

ovenstående virker..
Avatar billede roenving Novice
19. december 2004 - 11:54 #6
Ja, den variant kan også bruges !-)

-- men jeg vil lige gentage, at ur-scriptet er fra ur-tiden !-)

-- altså fra før browserne begyndte at implementere html4, som f.eks. angiver en dom-binding til elementer vha. getElementById, hvilket scriptet overhovedet ikke understøtter ...
Avatar billede ingeman Seniormester
19. december 2004 - 14:45 #7
Ja du bevæger dig ind på noget som jeg ingen forstand har på - men du har helt sikkert ret - jeg sidder jo kun og roder med IE.
Avatar billede roenving Novice
19. december 2004 - 14:56 #8
Dit ur-script virker med andre ord _kun_ i Netscape Navigator 4.x, IE 4+ (og måske i Opera !-)

Hverken Netscape 6+, Mozilla, FireFox, Camino eller alle de andre browsere vil kunne se noget, bl.a. fordi koden explicit afbrydes, fordi de hverken understøtter document.layers eller document.all ...
Avatar billede ingeman Seniormester
29. december 2004 - 17:33 #9
svar !
Avatar billede roenving Novice
29. december 2004 - 17:37 #10
Oki '-)
Avatar billede roenving Novice
30. december 2004 - 10:53 #11
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester