Niedziela 19 Maj 2024r. Godz 00:00:00      
Postów: 251      

Przewijany komunikat w JavaScript

<style type="text/css"> 
#divUpControl {position:absolute; left:150px;top:228px; width:320px;height:30px; z-index:1; text-align: right}
#divDownControl {position:absolute; left:150px; top:500px; width:320px;height:30px; z-index:1;text-align: right}
#divContainer {LEFT: 150px; VISIBILITY: hidden; OVERFLOW: hidden; WIDTH:320px; CLIP: rect(0px 320px 150px 0px); POSITION: absolute; TOP: 270px; HEIGHT: 150px}
#divContent {LEFT: 0px; POSITION: absolute; TOP: 0px}
h1 {  font: bold 12px Arial, Helvetica, sans-serif}
body { font: normal 12px Arial, Helvetica, sans-serif}
p { font: normal 12px Arial, Helvetica, sans-serif }
-->
</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.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('divContainer')
    objScroller=new ConstructObject('divContent','divContainer')
    objScroller.MoveArea(0,0)
    objContainer.css.visibility='visible'
    initialised=true;
}

function displayStatusMsg(msgStr) {
  status=msgStr;
  document.returnValue = true;
}

function preloadImages() {
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function swapImgRestore() {
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
}

function swapImage() {
  var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<script language="JavaScript">
<!--
function reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.pgW=innerWidth; document.pgH=innerHeight; onresize=reloadPage; }}
  else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();
}
reloadPage(true);
// -->
</script>

<body onLoad="InitialiseScrollableArea(); preloadImages('jscript59/scroller_up_on.gif','jscript59/scroller_down_on.gif');" bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<div id="divUpControl"> <a href="javascript:;" onMouseOver="PerformScroll(-7);displayStatusMsg('Scroll Up');swapImage('scroller_up_button','','jscript59/scroller_up_on.gif',1);return document.returnValue" onMouseOut="CeaseScroll();swapImgRestore()"><img name="scroller_up_button" src="jscript59/scroller_up.gif" border="0" alt="Up"></a></div>
<div id="divDownControl"> <a href="javascript:;" onMouseOver="PerformScroll(7);displayStatusMsg('Scroll Down');swapImage('scroller_down_button','','jscript59/scroller_down_on.gif',1);return document.returnValue" onMouseOut="CeaseScroll();swapImgRestore()"><img name="scroller_down_button" src="jscript59/scroller_down.gif" border="0" alt="Down"></a></div>
<div id="divContainer">

<div id="divContent">
Język ten został zaprojektowany i zaimplementowany przez małą grupę ludzi prowadzoną przez Jamesa Goslinga w laboratoriach Sun Microsystems w Mountin View, California. Oprócz swojej pracy nad jezykiem, James Gosling jest autorem programu emacs pod UNIX oraz systemu okien NeWS.
<br>
Poczatkowo zespół ludzi rozwijających język Java miał na celu zaprojektowanie oprogramowania do sprzętu elektronicznego. Szybko zorientowano się, że istniejące języki, takie jak C lub C++, nie nadają się do tego celu.
<br>
Programy napisane w C lub C++ muszą zostać skompilowane dla okreslonego procesora. kiedy nowy procesor zostaje wypuszczony na rynek, większosć oprogramowania musi zostać na nowo skompilowana, aby wykorzystać w pełni możliwosci nowego produktu. Jest tak, ponieważ raz skompilowany program w C lub C++ nie jest łatwo przystosować do korzystania z nowych bibliotek funkcji. Gdy biblioteki zostają zmienione, z reguły trzeba kompilować cały program od początku.
<br>
Oprogramowanie pisane dla sprzętów użytkowych musi działać na nowo produkowanych układach elektronicznych, gdyż producenci są mocno ograniczani przez koszt komponentów. Jesli koszt układu staje się zbyt wysoki, należy zastąpić go natychmiast innym, barziej efektywnym finansowo. Nawet małe skoki cen mogą stanowić dużą różnicę,jesli sprzedajemy miliony egzemplarzy.
<br>
Innym problemem dotyczącym uzycia tradycyjnych języków programowania do oprogramowania sprzętów użytkowych jest to, że sprzęty te mają zazwyczaj długi czas użytkowania. Są przecież ciągle działające tostery sprzed 50 lat. Wtyczka w dalszym ciągu pasuje do gniazdka, a kromki chleba idealnie wchodzą w otwory tostera. Oprogramowanie natomiast cechuje się z reguły krótszym czasem życia i dlatego byłoby trudne zbudowanie tostera z wmontowanym komputerem w środku. Jeżeli kiedykolwiek nowe oprogramowaine dla tostera zostałoby napisane, musiałoby ono być kompatybilne wstecz, aby działało również na starych wersjach tych urządzeń.
<br>


</div>
</div>