Risorse per webmaster

L A   C O M U N I T À   V I R T U A L E   I T A L I A N A   P E R   W E B   M A S T E R S

 
 
      Tecnologie
      HTML
      CSS
      DHTML
      FLASH
      ASP
      PHP
      JSP
      PERL
      XML
      SMIL
      WIRELESS
      PALMARI
      APACHE
      MYSQL
      PICOSQL
 
      Grafica
 
      Servizi
 
      Raccolte
 
      Recensioni
 
      Analisi
 
      Disclaimer

   Per tutti
 
  .: Magazine
  .: Editor
  .: Appunti
  .: Gratis
  .: Scripts
  .: Components
 
   Home page

Partner
Magazine di tecnologie
Magazine di viaggio e turismo
Magazine di musica e spettacoli
Negozio di Informatica
Basilicata turismo
Food e territori
Agenzia di comunicazione turistica e Digital PR

versione stampabile Mostra una versione adatta per la stampa  

Livello di difficoltà:Livello di difficoltà: medio  
Dynamic Html è una tecnologia approvata dal W3C per la creazione di siti Web dinamici ed interazioni client side con l'utente. In questa sezione sono disponibili centinaia di esempi ed arretrati della mailing list "Una demo Dhtml a settimana".
 

Un faro che illumina il documento

Arretrati lista "Una demo Dhtml a settimana"
CONOSCENZE CONSIGLIATE PER QUESTO ARTICOLO: Html, Css, Javascript

COMPATIBILITÀ: MsIe, Netscape
FILES ESTERNI: Nessuno
Visualizza la demo
Scarica la demo

Una delle peculiarità di Dynamic Html è la possibilità di stupire i navigatori con effetti di indubbio valore e bellezza grafica. La demo che commenteremo questa settimana, serve appunto per lasciare a bocca aperta i propri visitatori con un effetto facilmente applicabile a un qualsiasi documento ipertestuale.
Lo script, si compone di un solo file Html e di uno gif, ognuno dei quali fondamentale.
Ma vediamo come procedere. All'interno del tag <head> vai inserito il foglio di stile utile a posizionare e gestire gli oggetti della pagina:

<style>
TD{font-family:arial,helvetica; font-size:10pt}
BODY{background-color:black}
A{color:Navy; text-decoration:none}
A:hover{color:red}
A:visited:{color:#808080}
#divExCont{position:absolute; left:-1; top:-1; clip:rect(0,0,0,0);
layer-background-color:white; background-color:white}
#divCircle{position:absolute; z-index:500; visibility:hidden; width:200}
</style>

Tra le righe, si possono notare alcuni parametri molto importanti come le stringhe:

BODY{background-color:black} #divExCont{position:absolute; left:-1; top:-1; clip:rect(0,0,0,0); layer-background-color:white; background-color:white}

Che servono a impostare il colore di sfondo (background-color:black = colore di sfondo:nero), il colore della parte illuminata dal "faro" e il colore dello sfondo una volta cliccato con il mouse in qualunque parte del documento (layer-background-color:white; background-color:white = colore della parte illuminata:bianco; colore dello sfondo una volta cliccato sul documento:nero)

Una volta inserito il Css, bisogna osservare lo script seguente:

<script> /*************************************************************************** *****
This script is made by and copyrighted to Thomas Brattli at www.bratta.com Visit www.bratta.com/dhtml for more great scripts. This may be used freely as long as this msg is intact! I'd appriciate any links to my page. **************************************************************************** ****/

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

/*************************************************************************** ***
Making the clipobject part
**************************************************************************** **/
function makeObj(obj,nest,x,y){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ?
eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
this.clipIt=b_clipIt; this.clip=b_clip;
this.clipTo=b_clipTo;
this.obj = obj + "Object"; eval(this.obj + "=this")
return this
}
// Clip part
function b_clipTo(t,r,b,l){

if(n){this.css.clip.top=t;this.css.clip.right=r;this.css.clip.bottom=b;this.
css.clip.left=l
}else{
 this.css.clip="rect("+t+","+r+","+b+","+l+")";
}
}
function b_clipIt(tstop,rstop,bstop,lstop,step,fn){
if(!fn) fn=null
var clipval=new Array()
if(ie) {
 clipval=this.css.clip
  clipval=clipval.slice(5,clipval.length-1);
  clipval=clipval.split(' ')
  for(var i=0;i<4;i++){clipval[i]=parseInt(clipval[i])}
}else{
 clipval[0]=this.css.clip.top
  clipval[1]=this.css.clip.right
  clipval[2]=this.css.clip.bottom
  clipval[3]=this.css.clip.left
}

totantstep=Math.max(Math.max(Math.abs((tstop-clipval[0])/step),Math.abs((rst op-clipval[1])/step)),

Math.max(Math.abs((bstop-clipval[2])/step),Math.abs((lstop-clipval[3])/step)
))
if(!this.clipactive)

this.clip(clipval[0],clipval[1],clipval[2],clipval[3],(tstop-clipval[0])/tot
antstep,
 (rstop-clipval[1])/totantstep,(bstop-clipval[2])/totantstep,
  (lstop-clipval[3])/totantstep,totantstep,0, fn)
}
function b_clip(tcurr,rcurr,bcurr,lcurr,tperstep,rperstep,bperstep,lperstep,totantste
p,antstep, fn){
tcurr=tcurr+tperstep; rcurr=rcurr+rperstep
bcurr=bcurr+bperstep; lcurr=lcurr+lperstep
this.clipTo(tcurr,rcurr,bcurr,lcurr)
if(antstep<totantstep){
 this.clipactive=true
 antstep++

setTimeout(this.obj+".clip("+tcurr+","+rcurr+","+bcurr+","+lcurr+","+tperste p+","

+rperstep+","+bperstep+","+lperstep+","+totantstep+","+antstep+",'"+fn+"')", 50)
}else{
 this.clipactive=false
 eval(fn)
}
}
/*************************************************************************** ***
Initiating the page and the clip objects.
**************************************************************************** **/
function spotInit(){
pageWidth=(n)?innerWidth:document.body.offsetWidth;
pageHeight=(n)?innerHeight:document.body.offsetHeight;
oExCont=new makeObj('divExCont')
oExCont.clipTo(0,0,0,0)
if(ie){oExCont.css.width=pageWidth+10;oExCont.css.height=pageHeight+10}
oCircle=new makeObj('divCircle','divExCont')
oCircle.css.visibility="visible"
if(n)document.captureEvents(Event.MOUSEMOVE)
document.onmousemove=moveCircle;
}
function moveCircle(e){
x=(n)?e.pageX:event.x;y=(n)?e.pageY:event.y
oExCont.clipTo(y-100,x+100,y+100,x-100)
oCircle.css.left=x-100;oCircle.css.top=y-100
}
// This is being called when someone clicks the circle.
function showCont(){
document.onmousemove=null
oCircle.css.visibility="hidden"
oExCont.clipIt(-20,pageWidth+20,pageHeight+20,-20,20)
}

onload=spotInit;
</script>

Questa parte del codice, è fondamentale per il coretto funzionamento dell'animazione e non va modificata in nessuna parte.

Ma vediamo di osservare il <body> e soprattutto dove inserire il testo e le immagini che dovranno apparire solo quando illuminate dal faro:

<BODY bgcolor="Black" marginwidth="0" scroll="NO" onscroll="window.scroll(0,0)" marginheight="0">
<div id="divExCont">
<div id="divCircle">
  <a href="#" onclick="showCont();
if(ie)this.blur()"><img
src="black_circle.gif" width=234 height=241 border="0"></a>
</div>
E' QUI CHE BISOGNA INSERIRE IL TESTO CHE DOVRA' APPARIRE SOLO QUANDO ILLUMINATE DAL FARO
</div>
</BODY>
</HTML>

E' ormai palese la posizione in cui inserire testo e/o immagini.
 

 
 
Home > dhtml > teoria > 1999 > maggio > ...   © 1999-2024 Risorse.net, tutti i diritti riservati