ugrás a tartalomhoz

Nem akar menni a javascriptes analóg órám

Medve · 2009. Már. 9. (H), 21.12
Hello mindenki!
A segítségeteket szeretném kérni ugyanis azt gondoltam hogy képes vagyok már Javascript-ben írni egy analóg órát. háát ez részben be is jött ugyanis létrehoz mindent ami neki kell nem is ír ki hibát viszont nem akar mozogni a másdopercmutatóm(mert először csak egy mutatót akartam megforgatni).Arra szeretnélek kérni hogy valaki aki ért hozzá az nézze már ét nekem és mondja el nekem legyen szives hogy mi a baj vele.:D

<HTML>
<HEAD>
<TITLE>ÓRA2</TITLE>

<SCRIPT LANGUAGE='JavaScript'>
var M=5;
var P=4;
var O=3;
var kar=".";
var mszog=0;
var pszog=0;
var oszog=0;

function analogora(){

document.write('<div id="oralap" style="position:absolute;top:200px;left:300px;">');


init();
hatlap();
masodperc();
perc();
ora();
document.write('</div>');
}

function init(){
var mnev,pnev,onev;



for (var i=1 ; i <= M ; i++){
mnev="m"+i;
document.write('<div id="'+mnev+'" style="position:absolute;color:#ff0000;font-size:30;"><b>'+kar+'</b></div>');
}

for (var i=1 ; i <= P ; i++){
pnev="p"+i;
document.write('<div id="'+pnev+'" style="position:absolute;color:#00ff00;font-size:30;"><b>'+kar+'</b></div>');
}

for (var i=1 ; i <= O ; i++){
onev="o"+i;
document.write('<div id="'+onev+'" style="position:absolute;color:#0000ff;font-size:30;"><b>'+kar+'</b></div>');
}
document.write('<div id="kozeppont" style="position:absolute;color:#000000;font-size:30;left:2px;top:-15px;"><b>'+kar+'</b></div>');
}

function masodperc(){
var bal,fent;

if (mszog < (Math.PI*2)){
bal=Math.sin(mszog);
fent=Math.cos(mszog);

m1.style.top=(fent*10)-15;
m1.style.left=(bal*10)+2;

m2.style.top=(fent*20)-15;
m2.style.left=(bal*20)+2;

m3.style.top=(fent*30)-15;
m3.style.left=(bal*30)+2;

m4.style.top=(fent*40)-15;
m4.style.left=(bal*40)+2;

m5.style.top=(fent*50)-15;
m5.style.left=(bal*50)+2;

mszog=mszog+(Math.PI/48);

setTimeout('masodperc()',10);
}
else
{
mszog=0;
}

var mp=setTimeout('masodperc()',10);
}

function perc(){

}

function ora(){

}

function hatlap(){
var szog=0;
var bal,fent;

for (var i=12; i >= 10 ;i--){
bal=-Math.sin(szog)*60;
fent=-Math.cos(szog)*60;
document.write('<div id="ora'+i+'" style="position:absolute;top:'+fent+'px;left:'+bal+'px;"><b>'+i+'</b></div>');
szog=szog+(Math.PI/6);
}
for (var i=9; i >= 1 ;i--){
bal=-Math.sin(szog)*60;
fent=-Math.cos(szog)*60;
document.write('<div id="ora'+i+'" style="position:absolute;top:'+fent+'px;left:'+bal+'px;"><b>&nbsp;'+i+'</b></div>');
szog=szog+(Math.PI/6);
}
}


</SCRIPT>
</HEAD>

<BODY onLoad="analogora()">

</BODY>
</HTML>
Előre is köszi.
 
1

helló moto

domel · 2009. Már. 9. (H), 21.49
Helló!

Nálam itt száll el a programod:
m1.style.top=(fent*10)-15;
a fenti sorral első ránézésre nincs is gond, de:
document.write('<div id="'+mnev+'" style="position:absolute;color:#ff0000;font-size:30;"><b>'+kar+'</b></div>');
és a második sorral sincs gond :D DE! (mert ezzel már én is szívtam) az itt a gond, hogy a style-ben csak a meglévő dolgokat tudod állogatni.
Miről beszélek? m1.style.top azért nem tudod a topot állítani, mert nincs is ott.
style="position:absolute;color:#ff0000;font-size:30;" javítva
style="position:absolute;color:#ff0000;font-size:30;top:0"
lehet 0, vagy akármi, mert úgyis átállítod, mikor indul a program.

Lehet, hogy több hiba is van, de az egyik ez volt

-Xakk
2

Valami ilyesmi

Poetro · 2009. Már. 9. (H), 22.24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>ÓRA2</title>
</head>
<body>
<script type='text/javascript'>
  var M=5;
  var P=4;
  var O=3;
  var kar=".";
  var mszog=0;
  var pszog=0;
  var oszog=0;
  
  function analogora(){
    var body = document.getElementsByTagName('body')[0];
    var oralap = document.createElement('DIV');
    oralap.setAttribute('style', 'position:absolute;top:200px;left:300px;');
    oralap.setAttribute('id', 'oralap');
    body.appendChild(oralap);
    init(oralap);
    hatlap(oralap);
    var mp = window.setInterval(masodperc, 500);
    perc();
    ora();
  }
  
  function init(oralap){
    var mnev, pnev, onev , item, b;
    for (var i=1 ; i <= M ; i++){
      mnev = "m"+i;
      item = document.createElement('DIV');
      item.setAttribute('style', 'position:absolute;color:#ff0000;font-size:30;top:0;left:0;');
      item.setAttribute('id', mnev);
      b = document.createElement('B');
      b.appendChild(document.createTextNode(kar));
      item.appendChild(b);
      oralap.appendChild(item);
      window[mnev] = item;
    }
  
    for (var i=1 ; i <= P ; i++){
      pnev="p"+i;
      var item = document.createElement('DIV');
      item.setAttribute('style', 'position:absolute;color:#00ff00;font-size:30;');
      item.setAttribute('id', pnev);
      b = document.createElement('B');
      b.appendChild(document.createTextNode(kar));
      item.appendChild(b);
      oralap.appendChild(item);
      window[pnev] = item;
    }
  
    for (var i=1 ; i <= O ; i++){
      onev = "o"+i;
      item = document.createElement('DIV');
      item.setAttribute('style', 'position:absolute;color:#0000ff;font-size:30;');
      item.setAttribute('id', onev);
      b = document.createElement('B');
      b.appendChild(document.createTextNode(kar));
      item.appendChild(b);
      oralap.appendChild(item);
      window[onev] = item;
    }
    item = document.createElement('DIV');
    item.setAttribute('style', 'position:absolute;color:#000000;font-size:30;left:2px;top:-15px;');
    item.setAttribute('id', onev);
    b = document.createElement('B');
    b.appendChild(document.createTextNode(kar));
    item.appendChild(b);
    oralap.appendChild(item);
  }
  
  function masodperc(){
    var bal,fent;
    var now = new Date();
    mszog = - now.getSeconds() * Math.PI / 30 + Math.PI;
  
    bal=Math.sin(mszog);
    fent=Math.cos(mszog);
  
    m1.style.top=((fent*10)-15) + "px";
    m1.style.left=((bal*10)+2) + "px";
  
    m2.style.top=((fent*20)-15) + "px";
    m2.style.left=((bal*20)+2) + "px";
  
    m3.style.top=((fent*30)-15) + "px";
    m3.style.left=((bal*30)+2) + "px";
  
    m4.style.top=((fent*40)-15) + "px";
    m4.style.left=((bal*40)+2) + "px";
  
    m5.style.top=((fent*50)-15) + "px";
    m5.style.left=((bal*50)+2) + "px";
  }
  
  function perc(){
  
  }
  
  function ora(){
  
  }
  
  function hatlap(oralap){
    var szog=0;
    var bal, fent, item, b;
  
    for (var i=12; i >= 10 ;i--){
      bal=-Math.sin(szog)*60;
      fent=-Math.cos(szog)*60;
  
      item = document.createElement('DIV');
      item.setAttribute('style', 'position:absolute;top:'+fent+'px;left:'+bal+'px;');
      item.setAttribute('id', 'ora'+i);
      b = document.createElement('B');
      b.appendChild(document.createTextNode(i));
      item.appendChild(b);
      oralap.appendChild(item);
  
      szog=szog+(Math.PI/6);
    }
    for (var i=9; i >= 1 ;i--){
      bal=-Math.sin(szog)*60;
      fent=-Math.cos(szog)*60;
  
      item = document.createElement('DIV');
      item.setAttribute('style', 'position:absolute;top:'+fent+'px;left:'+bal+'px;');
      item.setAttribute('id', 'ora'+i);
      b = document.createElement('B');
      b.appendChild(document.createTextNode(" "+ i));
      item.appendChild(b);
      oralap.appendChild(item);
  
      szog=szog+(Math.PI/6);
    }
  }
  
  window.onload = analogora;

  </script>
  </body>
</html>
Persze még jócskán ráférne optimalizálás.
3

Köszi szépen!:D

Medve · 2009. Már. 12. (Cs), 11.42
kösz srácok most már mükszik rendesen.