Dropdown lijst + image swap
dbe123 - 13/11/2008 11:03 (laatste wijziging 13/11/2008 11:05)
Lid
Hoi,
Ik zou graag een dropdown-lijst maken, die wanneer men over een option gaat met de muisaanwijzer, een image gaat swappen ergens op de HTML-pagina.
Ik heb al veel tutorials op het net gevonden, maar slaag er niet in om ze bij mij te realiseren: ofwel zijn ze niet compleet wat ik zoek, ofwel krijg ik ze niet aan de praat.
De code die ik tot nu toe heb is de volgende:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
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];}}
}
//-->
</script>
</head>
<body>
<font face="Arial, Helvetica, sans-serif">
<table width="90%" border="1" cellpadding="2" id="products">
<tr>
<td colspan="3" align="center" valign="middle">
<div align="center"><img src="blank.jpg" name="blank" width="200" height="200" id="blank"></div></td>
</tr>
<tr>
<td width="33%"> <div align="center"><strong>Digital B&W Copiers</strong></div></td>
<td width="33%"></td>
<td width="33%"></td>
</tr>
<tr>
<td width="33%"> <div align="center">
<select name="digBWcop" id="digBWcop">
<option selected>Please select from below.......</option>
<option onMouseOver="document.blank.src='machines/prod1.jpg'" onMouseOut="document.blank.src='blank.jpg'">PRODUCT 1</option>
</select>
</div></td>
<td width="33%"> <div align="center"></div></td>
<td width="33%"> <div align="center"></div></td>
</tr>
</table>
</font>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" > <script language = "JavaScript" type = "text/JavaScript" > <!--
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];}}
}
//-->
<font face = "Arial, Helvetica, sans-serif" > <table width = "90%" border = "1" cellpadding = "2" id = "products" > <td colspan = "3" align = "center" valign = "middle" > <div align = "center" ><img src = "blank.jpg" name = "blank" width = "200" height = "200" id = "blank" ></ div ></ td > <td width = "33%" > <div align = "center" > <select name = "digBWcop" id = "digBWcop" > <option onMouseOver = "document.blank.src='machines/prod1.jpg'" onMouseOut = "document.blank.src='blank.jpg'" > PRODUCT 1
</ option >
Dit wil dus niet werken...
Ik zie niet wat er mis gaat...
Kan er iemand helpen?
Dus de afbeelding "blank.jpg" moet swappen wanneer er een onMouseOver-event gestart wordt vanuit de <option> tag.
Ik hoop dat er iemand me op weg kan zetten.
Thanks!
15 antwoorden
Gesponsorde links
MiST - 13/11/2008 11:10 (laatste wijziging 13/11/2008 11:11)
Lid
Het is volgens mij eleganter om het met nen functie aan te pakken.
Dus doe iets als het volgende
ergens zet je een <img> met id="swappableImg"
en dan een javascriptje
function swapImage(newImage)
{
var img = document.getElementById('swappableImg');
img.setAttribute('src', $newImage);
}
function swapImage( newImage)
{
var img = document.getElementById ( 'swappableImg' ) ;
img.setAttribute ( 'src' , $newImage) ;
}
in de onMouseOver zet je dan OnMouseOver="swapImage('url/to/image')"
Duidelijk?
Zou moeten werken...
EDIT: Deamn, ontani was me voor
dbe123 - 13/11/2008 11:17
Lid
Hey,
Thanks voor de snelle reactie...
Kan ik het JavaScriptje in de header van de HTML-pagina plaatsen, of moet dit in een extern bestand?
dbe123 - 13/11/2008 11:35
Lid
MiST schreef:
Het is volgens mij eleganter om het met nen functie aan te pakken.
Dus doe iets als het volgende
ergens zet je een <img> met id="swappableImg"
en dan een javascriptje
[..code..]
in de onMouseOver zet je dan OnMouseOver="swapImage('url/to/image')"
Duidelijk?
Zou moeten werken...Â
EDIT: Deamn, ontani was me voor
Ik heb het even geprobeerd, echter zonder positief resultaat.
De afbeelding wordt niet vervangen in de browser (ik gebruik IE 6.0, met SP2).
De code ziet er nu als volgt uit:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
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 swapImage(newImage){
var img = document.getElementById('blank');
img.setAttribute('src', $newImage);
}
//-->
</script>
</head>
<body>
<font face="Arial, Helvetica, sans-serif">
<table width="90%" border="1" cellpadding="2" id="products">
<tr>
<td colspan="3" align="center" valign="middle">
<div align="center"><img src="blank.jpg" name="blank" width="200" height="200" id="blank"></div></td>
</tr>
<tr>
<td width="33%"> <div align="center"><strong>Digital B&W Copiers</strong></div></td>
<td width="33%"> <div align="center"></div></td>
<td width="33%"> <div align="center"></div></td>
</tr>
<tr>
<td width="33%"> <div align="center">
<select name="digBWcop" id="digBWcop">
<option selected>Please select from below.......</option>
<option onMouseOver="swapImage('machines/prod1.jpg')" onMouseOut="swapImage('blank.jpg')">PRODUCT 1</option>
</select>
</div></td>
<td width="33%"> <div align="center"></div></td>
<td width="33%"> <div align="center"></div></td>
</tr>
</table>
</font>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" > <script language = "JavaScript" type = "text/JavaScript" > <!--
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 swapImage(newImage){
var img = document.getElementById('blank');
img.setAttribute('src', $newImage);
}
//-->
<font face = "Arial, Helvetica, sans-serif" > <table width = "90%" border = "1" cellpadding = "2" id = "products" > <td colspan = "3" align = "center" valign = "middle" > <div align = "center" ><img src = "blank.jpg" name = "blank" width = "200" height = "200" id = "blank" ></ div ></ td > <td width = "33%" > <div align = "center" > <select name = "digBWcop" id = "digBWcop" > <option onMouseOver = "swapImage('machines/prod1.jpg')" onMouseOut = "swapImage('blank.jpg')" > PRODUCT 1
</ option >
Enig idee??
dbe123 - 14/11/2008 09:49
Lid
Nobody?
dbe123 - 14/11/2008 10:37 (laatste wijziging 14/11/2008 10:47)
Lid
Ik vond dit op de MSDN site van Microsoft:
http://forums.m...p;SiteID=1
@ Erwt:
Thanks voor de bijdrage, maar nog steeds geen oplossing.
Ik denk echt dat het een compabiliteitsprobleem met Internet Explorer is.
Erwt - 14/11/2008 14:54
PHP beginner
Ahh sorry niet naar gekeken, ik ging direct van FireFox uit.
Erwt - 18/11/2008 16:11
PHP beginner
Ik heb 't even nagekeken voor je en de enigste uitweg is je eigen dropdown lijst te maken.
klik
Een andere optie is er voor IE helaas niet.
Veel succes nog.
dbe123 - 21/11/2008 14:24 (laatste wijziging 15/12/2008 13:29)
Lid
Ik heb via Google een kant en klaar script gevonden die me toelaat images te laten swappen.
Hieronder de code:
HEAD
<script language="javascript">
<!--
/*Combo Box Image Selector:
By JavaScript Kit (www.javascriptkit.com)
Over 200+ free JavaScript here!
*/
function showimage()
{
if (!document.images)
return
document.images.pictures.src=
document.mygallery.picture.options[document.mygallery.picture.selectedIndex].value
}
//-->
</script>
< script language= "javascript" >
<!--
/*Combo Box Image Selector:
By JavaScript Kit (www.javascriptkit.com)
Over 200+ free JavaScript here!
*/
function showimage( )
{
if ( ! document.images )
return
document.images .pictures .src =
document.mygallery .picture .options [ document.mygallery .picture .selectedIndex ] .value
}
//-->
</ script>
BODY
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><form name="mygallery"><p>
<select name="picture" size="1" onChange="showimage()">
<option selected value="me.gif">Picture of me</option>
<option value="myaunt.gif">Picture of my aunt</option>
<option value="brother.gif">Picture of my brother</option>
</select>
</p>
</form>
</td>
</tr>
<tr>
<td width="100%"><p align="center"><img src="me.gif" name="pictures" width="99" height="100"></td>
</tr>
</table>
<table border = "0" cellspacing = "0" cellpadding = "0" > <td width = "100%" ><form name = "mygallery" ><p > <select name = "picture" size = "1" onChange = "showimage()" > <td width = "100%" ><p align = "center" ><img src = "me.gif" name = "pictures" width = "99" height = "100" ></ td >
Deze code werkt perfect, maar geeft me nog één klein probleem.
De afbeeldingen worden perfect vervangen, maar ik kan de afbeelding niet aanklikken om naar een URL te navigeren.
Met andere woorden, hoe plaats ik een Hyperlink achter deze image? Normaal gaat dit, bij een dropdown, via de "value"-tag, maar deze wordt in dit script gebruikt om de image weer te geven.
Iemand een idee?
Gesponsorde links
Dit onderwerp is gesloten .