Ciao a tutti, premetto che so poco e niente di javascript.. Nella rete ho trovato uno script in java che permette di cambiare skin al pulsante una volta che ci si passa sopra con il mouse, Ecco come dovrebbe essere:
Tasto non selezionato
Tasto selezionato
Codice nella pagina default.asp
Codice PHP:
<script type="text/javascript" src="common.js"></script>
<body onload="add_handlers('nav_button');">
<dt class="titolo">Notebook Dell</dt>
<dd class="immagine">[img]immagini/portatile.png[/img]</dd>
<dd class="descrizione">[url="#"]Notebook Dell processore Intel Core Duo 2, hard disk 250GB[/url]</dd>
<dd class="prezzo">899€</dd>
<dd class="pulsante">[url="#"][img]immagini/nav_button.png[/img][/url]</dd>
</dl>
<dt class="titolo">Sony Bravia 50''</dt>
<dd class="immagine">[img]immagini/plasma.png[/img]</dd>
<dd class="descrizione">[url="#"]Notebook Dell processore Intel Core Duo 2, hard disk 250GB[/url]</dd>
<dd class="prezzo">1100€</dd>
<dd class="pulsante">[url="#"][img]immagini/nav_button.png[/img][/url]</dd>
</dl>
Codice pagina common.js
Codice PHP:
var images_dir = 'immagini/';
var over_prepend = '_sel.png';
var img_prepend = '_img';
function add_handlers() {
var i, args,d, link, img, id, to_preload, function_string;
d = document;
args = add_handlers.arguments;
to_preload = '';
function_string = '';
if(d.images) {
for(i = 0; i <args.length; i++) {
id = args[i];
elem = d.getElementById(id)
eval("elem.onmouseover = function() { MM_swapImage(\'"+id+img_prepend+"\',\'\',\'"+images_dir+id+over_prepend+"\',1); } ");
d.getElementById(id).onmouseout = function() { MM_swapImgRestore(); };
to_preload += "'"+images_dir+id+over_prepend+"',";
}
}
to_preload = to_preload.substr(0,(to_preload.length-1));
exec("MM_preloadImages("+to_preload+");");
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i]; }}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
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=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
Problemi:
Su I.E 7 non visualizzo i tasti selezionati, al contrario con Firefox ne visualizzo solo uno di selezionato (il primo). Se elimino una delle due "<dd class="pulsante.....</dd> riesco a visualizzarne una su Ie e una su Firefox. Sono giunto ad una conclusione, credo dipenda dal nome del pulsante nav_button.png che si ripete e quindi si crea una specie di conflitto. Il punto è che per questa pagina uso il linguaggio di programmazione ASP e le div contenenti i pulsanti verranno ripetute per "x" volte per quanti sono i prodotti visualizzati nella default.asp. Come posso fare per visuallizare i pulsanti selezionati senza problemi ogni volta che si passa il cursore sopra indipendemente dal numero di pulsanti presenti nella stessa pagina? Grazie in anticipo